我在Jdbc驱动程序升级后遇到以下异常。
Caused by: java.lang.ClassCastException: weblogic.jdbc.rmi.SerialPreparedStatement_weblogic_jdbc_rmi_internal_PreparedStatementStub_weblogic_jdbc_rmi_internal_PreparedStatementImpl_weblogic_jdbc_wrapper_PreparedStatement_oracle_jdbc_driver_OraclePreparedStatementWrapper_921_WLStub
Current Env:Weblogic 9.2.1,JDBC ojdbc5.jar
可以在这方面提供帮助吗?
答案 0 :(得分:0)
请将其分配给PreparedStatement接口,而不是特定的类(OraclePreparedStatement)。
PreparedStatement vStmt = null;
OracleResultSet vSet = null;
ArrayList<ResourceFile> vFiles = new ArrayList<ResourceFile>();
try {
vSqlStr = "some query here";
vStmt = aConn.prepareStatement(vSqlStr)
} catch (Exception e) {
...
connection.prepareStatement就像准备好的语句的工厂一样。这意味着你不知道,也不应该知道从这个方法调用返回哪种对象,但你知道接口。
答案 1 :(得分:0)
这是我在Weblogic 10.3中所做的,ojdbc6是从Weblogic Connection中提取底层Oracle连接对象,然后您可以将PreparedStatement转换为Oracle实现:
oracle.jdbc.OracleConnection oracleConn = ((weblogic.jdbc.extensions.WLConnection) ret).getVendorConnection();
OraclePreparedStatement ps = (OraclePreparedStatement) conn.prepareStatement("select * from ..."));