有一個(gè)例子,它適用于這個(gè)版本: String sql = "insert into album (name) VALUES (:name)"; Object[] params = new Object[] { al.getName() }; jdbcTemplate.update(sql, params);并在此版本中給出 ArrayIndexOutOfBoundsException: KeyHolder holder = new GeneratedKeyHolder(); String sql = "insert into album (name) VALUES (:name)"; Object[] params = new Object[] { al.getName() }; jdbcTemplate.update(sql, params, holder);附加信息:@Autowiredpublic void setDataSource(DataSource dataSource) { this.jdbcTemplate = new JdbcTemplate(dataSource);}<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="org.sqlite.JDBC"></property> <property name="url" value="jdbc:sqlite:db/springDB.db"></property> <property name="username" value=""></property> <property name="password" value=""></property></bean>有一個(gè)堆棧跟蹤:Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1at org.sqlite.core.CorePreparedStatement.batch(CorePreparedStatement.java:128)at org.sqlite.jdbc3.JDBC3PreparedStatement.setObject(JDBC3PreparedStatement.java:388)at org.springframework.jdbc.core.StatementCreatorUtils.setValue(StatementCreatorUtils.java:402)at org.springframework.jdbc.core.StatementCreatorUtils.setParameterValueInternal(StatementCreatorUtils.java:235)at org.springframework.jdbc.core.StatementCreatorUtils.setParameterValue(StatementCreatorUtils.java:166)at org.springframework.jdbc.core.ArgumentPreparedStatementSetter.doSetValue(ArgumentPreparedStatementSetter.java:66)at org.springframework.jdbc.core.ArgumentPreparedStatementSetter.setValues(ArgumentPreparedStatementSetter.java:47)at org.springframework.jdbc.core.JdbcTemplate$2.doInPreparedStatement(JdbcTemplate.java:914)這里有什么問(wèn)題?好像沒(méi)有錯(cuò)誤。第一個(gè)版本插入數(shù)據(jù)并創(chuàng)建一個(gè) id。但第二個(gè)給出錯(cuò)誤。謝謝
將插入與 KeyHolder 一起使用時(shí)出現(xiàn) ArrayIndexOutOfBounds
天涯盡頭無(wú)女友
2022-01-12 15:55:34