java.sql.SQLFeatureNotSupportedException: 這個 org.postgresql.jdbc4.Jdbc4Statement.setQueryTimeout(int) 方法尚未被實作。
java jdbc連接pg庫報錯:
八月 04, 2023 4:32:08 下午 com.alibaba.druid.pool.DruidDataSource error
嚴重: init datasource error, url: jdbc:postgresql://xxxx/xxxx
java.sql.SQLFeatureNotSupportedException: 這個 org.postgresql.jdbc4.Jdbc4Statement.setQueryTimeout(int) 方法尚未被實作。
at org.postgresql.Driver.notImplemented(Driver.java:753)
at org.postgresql.jdbc2.AbstractJdbc2Statement.setQueryTimeout(AbstractJdbc2Statement.java:668)
at com.alibaba.druid.pool.vendor.PGValidConnectionChecker.isValidConnection(PGValidConnectionChecker.java:66)
at com.alibaba.druid.pool.DruidAbstractDataSource.validateConnection(DruidAbstractDataSource.java:1393)
at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1727)
at com.alibaba.druid.pool.DruidDataSource.init(DruidDataSource.java:914)
at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:1382)
at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:1378)
at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:99)
at com.qsds.liujun.util.JDBCManagerNew.main(JDBCManagerNew.java:47)
異常出現場景:在使用java操作postgresql數據庫時。
出現原因:Jdbc4Statement類里面的需要實現setQueryTimeout 方法,但此處沒有實現。該方法是用來設置查詢超時時間的。postgresql驅動版本與druid版本不兼容,可以試試降低durid版本或提升postgresql版本。
解決辦法:
修改前: <!-- 數據庫連接池 --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.2.0</version> </dependency> <!-- postgresql JDBC --> <dependency> <groupId>postgresql</groupId> <artifactId>postgresql</artifactId> <version>9.1-901-1.jdbc4</version> </dependency> 修改后: <!-- 數據庫連接池 --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.0.0</version> </dependency> <!-- postgresql JDBC --> <dependency> <groupId>postgresql</groupId> <artifactId>postgresql</artifactId> <version>9.1-901-1.jdbc4</version> </dependency>
浙公網安備 33010602011771號