Java - 使用DBUtils BeanListHandler将查询中的所有日期转换为JodaTime的DateTime
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java - 使用DBUtils BeanListHandler将查询中的所有日期转换为JodaTime的DateTime相关的知识,希望对你有一定的参考价值。
我正在使用BeanListHandler
将数据库中的行转换为POJO。它一直很好,但现在我需要做一些日期比较。为此,我决定使用JodaTime。
我希望将查询结果集中的所有时间戳/日期类型行转换为JodaTime的DateTime
类而不是默认的Timestamp
。我尝试使用setter来做到这一点,但BeanListHandler
似乎没有调用setter来设置值(它是否使用反射?)。
我该怎么做呢?
答案
我不认为有一个直接的解决方案。一个解决方法是在POJO中同时包含Timestamp
和DateTime
字段,并在DateTime
属性的setter方法中设置Timestamp
值,如下例所示。
public class Pojo{
private Timestamp timestamp;
private DateTime dateTime;
public Timestamp getTimestamp() {
if (timestamp == null && dateTime != null) {
this.timestamp = new Timestamp(dateTime.getMillis());
}
return timestamp;
}
public void setTimestamp(Timestamp timestamp) {
if (dateTime == null && timestamp != null) {
this.dateTime = new DateTime(timestamp.getTime());
}
this.timestamp = timestamp;
}
public DateTime getDateTime() {
if (dateTime == null && timestamp != null) {
this.dateTime = new DateTime(timestamp.getTime());
}
return dateTime;
}
public void setDateTime(DateTime dateTime) {
if (timestamp == null && dateTime != null) {
this.timestamp = new Timestamp(dateTime.getMillis());
}
this.dateTime = dateTime;
}
}
以上是关于Java - 使用DBUtils BeanListHandler将查询中的所有日期转换为JodaTime的DateTime的主要内容,如果未能解决你的问题,请参考以下文章