xpa*_*nta 7 java prepared-statement
我正在尝试从executeBatch()事务中检索生成的密钥,但我只获取要添加的最后一个密钥.
这是我的代码:
PreparedStatement ps_insert = conn.prepareStatement(insertQuery, PreparedStatement.RETURN_GENERATED_KEYS);
for (int i = 0 ; i < adding_dates.length ; i++){
ps_insert.setInt(1, Integer.parseInt(consultant_id));
ps_insert.setDate(2, adding_dates[i]);
ps_insert.setInt(3, Integer.parseInt(room_id));
ps_insert.addBatch();
}
ps_insert.executeBatch();
ResultSet rs = ps_insert.getGeneratedKeys(); //<-- Only the last key retrieved
conn.commit();
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
编辑:抱歉没有提到我在嵌入模式下使用H2(http://www.h2database.com/html/main.html)数据库.
根据 H2 jdbc 驱动程序 javadocs,这是正常行为:
返回一个结果集,其中包含此连接最后生成的自动增量 键(如果有)。如果最后的修改语句没有生成键,则返回空结果集。返回的结果集仅包含最后一行的数据。