从来没有遇到过这个,所以我潜入了一点。首先,有一种方法可以从 JDBC 语句中检索生成的 id:
String sql = "INSERT INTO AUTHORS (LAST, FIRST, HOME) VALUES " +
"'PARKER', 'DOROTHY', 'USA', keyColumn";
int rows = stmt.executeUpdate(sql,
Statement.RETURN_GENERATED_KEYS);
ResultSet rs = stmt.getGeneratedKeys();
if (rs.next()) {
ResultSetMetaData rsmd = rs.getMetaData();
int colCount = rsmd.getColumnCount();
do {
for (int i = 1; i <= colCount; i++) {
String key = rs.getString(i);
System.out.println("key " + i + "is " + key);
}
}
while (rs.next();)
}
else {
System.out.println("There are no generated keys.");
}
看到这个http://download.oracle.com/javase/1.4.2/docs/guide/jdbc/getstart/statement.html#1000569
此外,理论上它可以与 JDBC batchUpdate结合使用
虽然,这种组合似乎相当重要,但请参考这个线程。我建议试试这个,如果你不成功,就回退到从序列中预取。