sql = " select * from mytable mytable "里面有一个字段:Create_Date :是timestamp 类型,默认值是sysdate
PLSQL里面显示的值是:17-5月 -10 03.48.51.000000 下午
bean 中对应有一个 private java.sql.Timestamp Create_Date ,同时有getCreate_Date() setCreate_Date(Timestamp t) 方法。
我们将ResultSet rs 取得的每一条记录,保存到Hashtable 里面。 最后
else if (parameterTypeName.equals(("java.sql.Timestamp"))) {ms[i].invoke(bean,new Object[] { java.sql.Timestamp.valueOf((String) ht.get(fliedName.toLowerCase())) });执行到这一句报错,说Timestamp Cast 异常!对于Timestamp类型,确实很头痛。要怎么转换呢? 谢谢大家。
PLSQL里面显示的值是:17-5月 -10 03.48.51.000000 下午
bean 中对应有一个 private java.sql.Timestamp Create_Date ,同时有getCreate_Date() setCreate_Date(Timestamp t) 方法。
我们将ResultSet rs 取得的每一条记录,保存到Hashtable 里面。 最后
else if (parameterTypeName.equals(("java.sql.Timestamp"))) {ms[i].invoke(bean,new Object[] { java.sql.Timestamp.valueOf((String) ht.get(fliedName.toLowerCase())) });执行到这一句报错,说Timestamp Cast 异常!对于Timestamp类型,确实很头痛。要怎么转换呢? 谢谢大家。
源于你的错误的timestamp格式。
获取连接以后,执行:
alter session set nls_timestamp_format='YYYY-MM-DD HH24:MI:SS.FF3'这样,你得到的标准格式的timestamp, 再调用java.sql.Timestamp.valueOf((String) ht.get(fliedName.toLowerCase())) });
就不会出错了。这是一个比较常用的窍门。
在SQL语句里面格式化Timestamp吗?我试试了,好像有用。