java.lang.ClassCastException: oracle.sql.TIMESTAMP cannot be cast to java.sql.Timestamp

之前遇到的一个问题:

用JDBC从oracle取出类型为timestamp的字段,然后再利用ResultSet.setTimestamp(ResultSet.getObject())设置到mysql中,会报错:

java.lang.ClassCastException: oracle.sql.TIMESTAMP cannot be cast to java.sql.Timestamp


debug了一下,可以发现ResultSet.getObject()获取的类型为oracle.sql.TIMESTAMP,ResultSet.setTimestamp(java.sql.Timestamp),参数类型不匹配,所以会报错。


解决方法:

添加jvm启动参数:-Doracle.jdbc.J2EE13Compliant=true YourApplication。

或者

在程序里添加代码:System.getProperties().setProperty("oracle.jdbc.J2EE13Compliant", "true")





你可能感兴趣的:(JAVA知识点)