检查此循环。
这里,在i = 0的情况下,取出(0-1)为-1。
我们知道List提供了基于0的索引,所以你的str.get(..)应该从0开始,而不是从-1开始
试试这个
public void insert(List str, Connection con) throws SQLException {
String sql = "insert into tbl_list values (?,?)";
PreparedStatement ps = con.prepareStatement(sql);
for (Employee e:str) {
ps.setString(1, e.getName());
ps.setLong(2, e.getId());
ps.addBatch();
}
ps.executeBatch();
ps.close();
con.close();
}
堆栈跟踪是:
`2017年5月16日下午2:34:40 org.apache.catalina.core.StandardWrapperValve调用
严重:servlet [spring]的Servlet.service()在路径[/ insert]的上下文中引发异常[请求处理失败;嵌套异常是java.sql.BatchUpdateException:调用中的无效参数有根本原因
java.sql.BatchUpdateException:调用中的参数无效
at oracle.jdbc.driver.OraclePreparedStatement.executeBatch(OraclePreparedStatement.java:10345)
at oracle.jdbc.driver.OracleStatementWrapper.executeBatch(OracleStatementWrapper.java:230)
at org.apache.tomcat.dbcp.dbcp.DelegatingStatement.executeBatch(DelegatingStatement.java:297)
at org.apache.tomcat.dbcp.dbcp.DelegatingStatement.executeBatch(DelegatingStatement.java:297)
在dao.insert.preparedInsert(insert.java:322)
insert.java:322是ps.executeBatch();`