WSJDBCConnection 不包装 oracle.jdbc.OracleConnection 类型的对象
WSJDBCConnection does not wrap objects of type oracle.jdbc.OracleConnection
我看到有人问过类似的问题:
但是我的问题是团队中的其他编码人员正在使用相同的代码,显然它对他们来说工作正常。
Connection conn = null;
Connection oracleConn = null;
CallableStatement stmt = null;
try {
conn = this.getDataSource().getConnection();
if ( conn.isWrapperFor(oracle.jdbc.OracleConnection.class)) {
oracleConn = conn.unwrap(oracle.jdbc.OracleConnection.class);
}
我没有开发此代码,我发现他们将 OracleConnection 展开为常规连接很奇怪 class。 Bawwt.
我已经尝试了很多东西,但实际上这段代码应该按原样工作。
现在上面的代码稍后会在调用准备好的语句时生成一个空指针,因为 if 语句永远不会触发。我从来没有在 if 语句中做到这一点,
然而,当我强迫自己展开时,我得到:
java.sql.SQLException:DSRA9122E:com.ibm.ws.rsadapter.jdbc.WSJdbcConnection@35c735c7 不包装 oracle.jdbc.OracleConnection
类型的任何对象
环境是运行ojdbc14和JVM 6.0。 WebSphere 中的设置
第一次发帖,如有不妥之处敬请见谅
编辑从代码中删除了两个无关紧要的变量
仔细检查您的配置。您的数据源不能像您认为的那样指向 Oracle 数据库。我测试了您的代码,如果您的 DataSource 确实指向 Oracle DB,它就会工作。
isWrapperFor()
方法试图告诉您您的连接没有包装 OracleConnection,这也与异常消息告诉您的内容一致。
您可以这样查看数据源产品信息:
DatabaseMetaData metadata = conn.getMetaData();
System.out.println("DB product: " + metadata.getDatabaseProductName());
System.out.println("JDBC Driver: " + metadata.getDriverName());
我看到有人问过类似的问题:
但是我的问题是团队中的其他编码人员正在使用相同的代码,显然它对他们来说工作正常。
Connection conn = null;
Connection oracleConn = null;
CallableStatement stmt = null;
try {
conn = this.getDataSource().getConnection();
if ( conn.isWrapperFor(oracle.jdbc.OracleConnection.class)) {
oracleConn = conn.unwrap(oracle.jdbc.OracleConnection.class);
}
我没有开发此代码,我发现他们将 OracleConnection 展开为常规连接很奇怪 class。 Bawwt.
我已经尝试了很多东西,但实际上这段代码应该按原样工作。
现在上面的代码稍后会在调用准备好的语句时生成一个空指针,因为 if 语句永远不会触发。我从来没有在 if 语句中做到这一点,
然而,当我强迫自己展开时,我得到:
java.sql.SQLException:DSRA9122E:com.ibm.ws.rsadapter.jdbc.WSJdbcConnection@35c735c7 不包装 oracle.jdbc.OracleConnection
类型的任何对象环境是运行ojdbc14和JVM 6.0。 WebSphere 中的设置
第一次发帖,如有不妥之处敬请见谅
编辑从代码中删除了两个无关紧要的变量
仔细检查您的配置。您的数据源不能像您认为的那样指向 Oracle 数据库。我测试了您的代码,如果您的 DataSource 确实指向 Oracle DB,它就会工作。
isWrapperFor()
方法试图告诉您您的连接没有包装 OracleConnection,这也与异常消息告诉您的内容一致。
您可以这样查看数据源产品信息:
DatabaseMetaData metadata = conn.getMetaData();
System.out.println("DB product: " + metadata.getDatabaseProductName());
System.out.println("JDBC Driver: " + metadata.getDriverName());