2015-06-12 88 views
0

我想從使用Apache Commons DBUtils的表中獲取日期列表。 這種查詢適用於Strings和我自己的POJO,但出於某種原因,不適用於java.sql.Date。從Apache Commons DBUtils獲取日期列表

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())); 

回答

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())); 
相關問題