私は春のフレームワークが初めてで、理解するために最善を尽くしています。操作に Spring NamedParameterJDBC テンプレートを使用しています
私は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;
私がグーグルで調べたところ、これは自動生成されたキーを送信しない ojdbc14 のような古い Ojdbc ドライバーの問題であることがわかりました。現在、Spring または同じ操作を行う他の方法で最新の ojdbc ドライバーをロードする方法を見つけることができません。
spring-jdbc にはデフォルトの ojdbc ドライバーがあると想定しています。私は正しいですか?プロジェクトに他のドライバーを追加しなかったためです。
--> 自動生成キーがなければ、プロセス全体が正常に機能します。