从Apache Commons DBUtils获取日期列表

时间:2015-06-12 10:25:20

标签: java apache-commons-dbutils

我正在尝试使用Apache Commons DBUtils从表中获取日期列表。 这种查询适用于Strings和我自己的POJO,但由于某种原因不适用于java.sql.Date。

PUBLIC_HOLIDAYS中的CALENDAR_DATE是一个有效的日期字段。

查询:

select CALENDAR_DATE TIME from PUBLIC_HOLIDAYS where CALENDAR_DATE between ? and ?

Java代码

ResultSetHandler<List<java.sql.Date>> h = new BeanListHandler<>(java.sql.Date.class);
QueryRunner db = new QueryRunner(dataSource,true);
List<java.sql.Date> sqlDates = db.query(sql, h,new java.sql.Date(from.getTime()),new java.sql.Date(to.getTime()));

1 个答案:

答案 0 :(得分:0)

答案是构建自己的ResultSetHandler。也许有一种更简单的方法,但我找不到一个。

ResultSetHandler<List<java.sql.Date>> h = new ResultSetHandler<List<java.sql.Date>>() {

public List<java.sql.Date> handle(ResultSet rs) throws SQLException {
  List<java.sql.Date> result = new ArrayList<java.sql.Date>();
  while (rs.next()) {
     result.add(rs.getDate(1));
  }
  return result;
}
};

List<java.sql.Date> sqlDates = db.query(sql, h,new java.sql.Date(from.getTime()),new java.sql.Date(to.getTime()));