将OraclePreparedStatement与DBCP连接一起使用

问题描述 投票:2回答:4

我正在尝试使用oracle服务器的dbcp框架建立连接池。我将此tutorial用于连接。问题是使用以下连接创建OraclePreparedStatement:

Connection oracleCon;
OraclePreparedStatement o_stmt;
String sql = "INSERT INTO T002_metadata (T002_datacitexml,T002_version, T002_active)       VALUES (?,?,?) RETURNING T002_id INTO ?";


oracleCon = ConnectionManager.ds.getConnection();

o_stmt = ((OraclePreparedStatement) oracleCon.prepareStatement(sql));

执行此操作后,将引发异常。

org.apache.commons.dbcp.DelegatingPreparedStatement cannot be cast to oracle.jdbc.OraclePreparedStatement

是否有可能发表声明?

我正在尝试使用oracle服务器的dbcp框架建立连接池。我使用本教程进行连接。问题是使用以下连接创建OraclePreparedStatement:...

java oracle casting prepared-statement
4个回答
2
投票

不是Oracle类,不是。这就是JDBC的目的。这是一个API。仅使用java.sql.PreparedStatement。通过尝试向下转换,您违反了多态性并破坏了诸如此类的东西,其中一个库包装了真实的连接和语句以为您提供一些其他服务。


2
投票

我今天遇到了同样的问题,并通过按建​​议的here更改Tomcat配置解决了该问题。我通过更改类型和工厂属性来更改context.xml文件:


0
投票

如果您使用的是Oracle,则可以将连接投射到OracleConnection,然后进行投射您准备好的对OraclePreparedStatement的语句。 jdbc的工作是将Oracle对象转换为标准sql对象,但它们仍然是Oracle sql对象。


0
投票

我使用实用程序方法

© www.soinside.com 2019 - 2024. All rights reserved.