2016-08-30 65 views
0

我對Spring Batch的項目時連接到PostgreSQL數據庫我得到波紋錯誤。值java.sql.SQLException:方法org.postgresql.jdbc3.Jdbc3PreparedStatement.setQueryTimeout(INT)尚未實現

java.sql.SQLException:方法org.postgresql.jdbc3.Jdbc3PreparedStatement.setQueryTimeout(int)尚未實現。

如何解決這個問題了,請幫我在這。 我使用Postgres的9.4-1201-jdbc41驅動程序版本 和Spring JDBC 4.1.4.RELEASE

Stack trace 
    at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:549) 
Caused by: java.sql.SQLException: Method org.postgresql.jdbc3.Jdbc3PreparedStatement.setQueryTimeout(int) is not yet implemented. 
    at org.postgresql.Driver.notImplemented(Driver.java:753) 
    at org.postgresql.jdbc2.AbstractJdbc2Statement.setQueryTimeout(AbstractJdbc2Statement.java:668) 
    at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.setQueryTimeout(NewProxyPreparedStatement.java:1800) 
    at org.springframework.jdbc.datasource.DataSourceUtils.applyTimeout(DataSourceUtils.java:275) 
    at org.springframework.jdbc.core.JdbcTemplate.applyStatementSettings(JdbcTemplate.java:1399) 
    at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:639) 
    ... 37 more 
] 
Execution failure Stack trace: [org.springframework.jdbc.UncategorizedSQLException: PreparedStatementCallback; uncategorized SQLException for SQL [SELECT * FROM patient where id =? ]; SQL state [0A000]; error code [0]; Method org.postgresql.jdbc3.Jdbc3PreparedStatement.setQueryTimeout(int) is not yet implemented.; nested exception is java.sql.SQLException: Method org.postgresql.jdbc3.Jdbc3PreparedStatement.setQueryTimeout(int) is not yet implemented.] 
+0

您應該在代碼塊中插入錯誤以獲得更好的可讀性 – XavM

回答

1

該錯誤信息是明確的。它還沒有實現,所以要麼找到一個更新的驅動程序,其中實現,或者如果一個不存在,請不要使用該方法。

最新,最先進的驅動程序是JDBC42 Postgresql Driver, Version 9.4.1209。如果它不起作用,那麼你就不能使用該方法。

好像this was an issue以前並引起連接池中使用測試查詢。在最新的驅動程序中,它被實現了,但是不應該使用測試查詢,因爲有明確用於測試有效性的Connection.isValid()方法。

+0

此版本也錯誤是相同的 – user3715296

+0

@ user3715296猜猜這是什麼意思? – Kayaman

+0

@ user3715296您正在使用哪個Java版本? – Kayaman

相關問題