gpt4 book ai didi

java - 获取 Spring 编写 Joda DateTime/DateMidnight

转载 作者:行者123 更新时间:2023-12-04 05:21:39 24 4
gpt4 key购买 nike

我正在尝试使用 Spring 3 JdbcTemplate 编写日期信息。我有如下内容:

public void foo(DateMidnight date){
jdbcTemplate().update(sql,date);
}

如果 date 是一个 java.util.Date,那就没问题了,但是如果是 DateMidnight,这就会崩溃。我当然可以这样做:
public void foo(DateMidnight date){
jdbcTemplate().update(sql,date.toDate());
}

但是很容易忘记这样做。有没有办法告诉 Spring (3),每当 JdbcTemplate 获得 DateMidnight(或 DateTime)时,它应该在存储之前将其转换为 Date?我读到了 conversion service API ,但从我看到的代码示例中它只适用于 Spring MVC 中的转换。

最佳答案

据我了解,您需要覆盖 JdbcTemplate.newArgPreparedStatementSetter() 并在那里实现适当的转换,如下所示:

protected PreparedStatementSetter newArgPreparedStatementSetter(Object[] args) {
Object[] converted = new Object[args.length];
for (int i = 0; i < args.length; i++) {
Object arg = args[i];
if (arg instanceof DateTime) {
converted[i] = ((DateTime) arg).toDate();
} else {
converted[i] = arg;
}
}
return super.newArgPreparedStatementSetter(converted);
}

关于java - 获取 Spring 编写 Joda DateTime/DateMidnight,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13633033/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com