我是 Spring 框架的新手,并尽力理解。我正在为我的操作使用 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 驱动程序。我对么?因为我没有在我的项目中添加任何其他驱动程序。
--> 没有自动生成密钥,整个过程工作正常。