如何将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
,但不一定是相互转换。