2012-07-11 103 views
0

我是Spring框架的新手,並且盡我所能理解。 我使用Spring NamedParameterJDBC模板我的操作Spring JDBC和Oracle Db驅動程序連接

我有在DAO這段代碼

SqlParameterSource paramSource = new BeanPropertySqlParameterSource(
      positionDO); 
KeyHolder keyHolder = new GeneratedKeyHolder(); 
return this.jdbcTemplate.update(sql, paramSource, keyHolder); 

問題是,當我執行,我收到此錯誤

org.springframework.jdbc.UncategorizedSQLException: PreparedStatementCallback; uncategorized SQLException for SQL 
[INSERT INTO POSITION_TABLE VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?)]; SQL state [null]; 
error code [0]; 
java.lang.AbstractMethodError: oracle.jdbc.driver.OracleConnection.prepareStatement(Ljava/lang/String;I) 
Ljava/sql/PreparedStatement; 

我一派,發現這是舊的Ojdbc驅動程序,如ojdbc14不會發送自動生成的密鑰的問題。 現在我無法找到怎麼做,以加載Spring或任何其他方式執行相同的操作最新的ojdbc驅動程序。

我假設spring-jdbc將有默認的ojdbc驅動程序。我對麼?因爲我沒有添加任何其他驅動程序到我的項目。

- >沒有自動生成密鑰,整個過程工作正常。

+0

您的項目依賴項如何管理?它是一個螞蟻項目,一個Maven項目,一個Eclipse項目? – Olaf 2012-07-11 14:19:46

+0

maven。並在pom.xml中,我看不到任何驅動程序依賴項,但它是連接到數據庫。難道春天有一些內置的驅動程序或缺少任何東西? – Reddy 2012-07-11 14:25:22

回答

3

可能你的Java和ojdbc版本不匹配。由於JDBC是JavaSE的一部分,因此您的JavaSE版本和ojdbc版本必須匹配。

ojdbc14→Java 1.4中

ojdbc5→Java 1.5的

ojdbc6→Java 1.6的

如果您ojdbc驅動程序版本較新,你的JavaSE的版本,那麼事情應該仍然工作。您可以從 Oracle Download page獲取Oracle JDBC驅動程序。不幸的是,你不會在Maven中心找到它們,所以你需要手動將它們部署到你的Maven倉庫。

如果你想尋找你ojdbc驅動程序相關的使用

mvn dependency:tree 

如果它不存在,而不是與你的神器(WAR或EAR),那麼它很可能從您的應用程序服務器或類似來包裝。

相關問題