2015-06-12 2 views
0

Я пытаюсь получить список дат из таблицы, используя Apache Commons DBUtils. Этот вид запросов хорошо работает со строками и моими POJO, но по какой-то причине не работает на java.sql.Date.Получение списка дат из Apache Commons DBUtils

CALENDAR_DATE в PUBLIC_HOLIDAYS является допустимым полем даты.

Запрос:

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())); 
Смежные вопросы