java - 如何将 dbcp 连接转换为 oracle 连接?

标签 java oracle tomcat jdbc

我需要在运行时将 PoolableConnection 转换为 OracleConnection,但我不知道该怎么做。 因为我得到了 classCastException,如果所有类都扩展了 Connection,我可以这样做吗?

最佳答案

您应该能够转换为特定于 DBCP 的连接类,并从那里检索内部 Oracle 连接:

import org.apache.commons.dbcp.DelegatingConnection;

DelegatingConnection dc = (DelegatingConnection)conn;
OracleConnection oc = (OracleConnection)pc.getInnermostDelegate();

如果您使用的是 Tomcat 的内置 DBCP 副本,那么您需要的导入是:

import org.apache.tomcat.dbcp.dbcp.DelegatingConnection;

或者您可以使用内置于 Oracle JDBC 驱动程序实现中的连接池。这将返回一个 Oracle 连接。一个简单的设置是:

<Resource auth="Container"
          connectionCacheName="CXCACHE"
          connectionCacheProperties="{MaxStatementsLimit=5,MinLimit=1, MaxLimit=1, ValidateConnection=true}"
          connectionCachingEnabled="true"
          description="Oracle Datasource"
          factory="oracle.jdbc.pool.OracleDataSourceFactory"
          name="jdbc/TestDB"
          user="default_user" 
          password="password"
          type="oracle.jdbc.pool.OracleDataSource"
          url="jdbc:oracle:thin:@//localhost:1521/orcl"
          />

关于java - 如何将 dbcp 连接转换为 oracle 连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31294979/

相关文章:

ruby-on-rails - 有关如何使 Apache Tomcat 与 Ruby on Rails 应用程序一起工作的分步指南?

java - 出现检查的正则表达式问题 :

java - 近似正则表达式等价

java - SQL 如何仅返回一些列,例如前 10 列,而不在 SQL 查询中指定它们

java - JSP 在 tomcat 上找不到类错误 org.hibernate.Session

java - 在 Tomcat/Axis2 中使用 JAW-XS 注释

java - Java中的列表vs队列vs集合

java - 如何使用 uniVocity-parsers 处理不可打印字符

Oracle 日期错误 - ORA-01841

mysql - 组合两个不同的数据集时子查询不返回数据