如何将Jdbc4Connection转换为PGConnection?

前端之家收集整理的这篇文章主要介绍了如何将Jdbc4Connection转换为PGConnection?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想利用postgres CopyManager:
CopyManager cp = ((PGConnection) dataSource.getConnection()).getCopyAPI();

因为我使用的是spring-boot,所以datasource是一个org.apache.tomcat.jdbc.pool.DataSource,因此连接一个Jdbc4Connection.

问题:转换会抛出以下错误

java.lang.ClassCastException: com.sun.proxy.$Proxy55 cannot be cast to org.postgresql.PGConnection

此外,当我尝试强制转换为Jdbc4Connection时,我得到了同样的错误

java.lang.ClassCastException: com.sun.proxy.$Proxy55 cannot be cast to org.postgresql.jdbc4.Jdbc4Connection

我能做什么?

解决方法

如果您使用的是javax.sql.DataSource,那么这是一个解决方案:
if (dataSource.getConnection().isWrapperFor(PGConnection.class)) {
  PGConnection pgConnection = dataSource.getConnection().unwrap(PGConnection.class);
}

希望这可以帮助.

猜你在找的Java相关文章