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

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

您应该只能转换到DBCP特定的Connection类,并从那里检索内部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连接。 一个简单的设置是:

  

只有当您实际投射的对象您要将其投射到的类的实例时,才能进行投射。 如果你得到的ClassCastException并非如此。

扩展Connection所有类都可以强制转换为Connection ,但不一定是相互转换。