参考自博客:
在web工程(ssh),oracle数据库
使用 select ? sj from dual 查询语句,然后赋值timestamp类型的值, 取出的结果集中, 直接用getObject 所取出的数据类型为 oracle.sql.TimeStamp类型,无法直接使用。
用select sysdate from dual 或 select * from demo 查询语句,取出的结果集中,用getObejct所取出的数据类型为 java.sql.TimeStamp类型。
解决方案一:
判断当取出的结果集中数据的类型为:Types.TIMESTAMP (oracle.sql.TimeStamp 或者 java.sql.TimeStamp) 使用rs.getTimestamp(i) 取出的数据类型就为java.sql.TimeStamp,
解决方案二:
用getObject取出数据,然后使用以下方案将数据类型从oracle.sql.TimeStamp 转到java.sql.TimeStamp
Object value = vds2.getObject(0, "js");
Class clz = value.getClass();
Method method = clz.getMethod("timestampValue", null);
Timestamp a = (Timestamp) method.invoke(value, null);