DBUtils无法将字符串转换为日期

时间:2014-07-31 22:46:21

标签: java jtds apache-commons-dbutils

我正在使用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 个答案:

答案 0 :(得分:2)

我尝试更改jtds驱动程序版本,但它没有用。一旦我将数据类型从日期更改为日期时间,它就开始工作而没有问题。我也试过datetime2来看看它是否会起作用。不行......如果有人遇到这个问题......后端是一个SQLServer 2008R2 db。