所以我一直相信这是使用 JDBCTemplate 从数据库中获取自动生成的 ID 值的最有效方法:
KeyHolder keyHolder = new GeneratedKeyHolder();
jdbcTemplate.update(
new PreparedStatementCreator() {
public PreparedStatement createPreparedStatement(Connection connection) throws SQLException {
PreparedStatement ps =
connection.prepareStatement(INSERT_SQL, new String[] {"ID_FIELD"});
// Configure the PreparedStatement HERE!
return ps;
}
},
keyHolder);
我的问题是我经常插入可变数量的值(JDBCTemplate.update(String, Object[])
实际上正是我需要的),并且看起来PreparedStatement
允许一次插入一个(setString
等等)。遍历数组似乎是如此...不雅。