DBUtils 无法将字符串转换为日期
Posted
技术标签:
【中文标题】DBUtils 无法将字符串转换为日期【英文标题】:DBUtils cannot convert string to date 【发布时间】:2014-09-24 01:30:34 【问题描述】:我正在使用 apache dbutils。我有一个带有 java.util.Date 属性的对象。当我执行以下代码时,sql 失败
select name, startDate from myTable
try
QueryRunner run ;
run = new QueryRunner();
ResultSetHandler h = new BeanListHandler(clazz);
ArrayList<T> result ;
result = (ArrayList) run.query(connection, sql, h);
return result;
catch (SQLException ex)
Logger.getLogger(AbstractDataMapper.class.getName()).log(Level.SEVERE, null, ex);
throw new AppException("Sql fetch failed for: " + sql,ex);
我查看了代码,发现 BeanProcessor、processColumn 正在遍历除 Date 之外的所有属性。对于 Date,它正在调用 rs.getObject(index)。根据我的调试器,这会返回字符串并导致设置失败。有什么想法吗?
更换驱动程序?我正在使用 jtds 1.2.5。它应该为 getObject 方法返回 Date 吗?
【问题讨论】:
【参考方案1】:我尝试更改 jtds 驱动程序版本,但没有成功。一旦我将数据类型从日期更改为日期时间,它就可以毫无问题地开始工作。我也试过 datetime2 看看它是否会起作用。不行...万一有人遇到这个问题...后端是 SQLServer 2008R2 db。
【讨论】:
以上是关于DBUtils 无法将字符串转换为日期的主要内容,如果未能解决你的问题,请参考以下文章
Java - 使用DBUtils BeanListHandler将查询中的所有日期转换为JodaTime的DateTime
无法将 yyyyMMddHHmmss 格式的字符串日期转换为 DateTime dart
java.text.ParseException:无法解析的日期:将 mm/dd/yyyy 字符串转换为日期