MySQL & Java - 获取最后插入值的 ID (JDBC)
可能的重复:
如何在JDBC中获取插入ID?
嗨,我正在使用JDBC通过Java连接数据库。
现在,我做一些插入查询,我需要获取上次插入值的id(所以,在a之后)。stmt.executeUpdate
我不需要类似的东西,因为我可能有并发问题。SELECT id FROM table ORDER BY id DESC LIMIT 1
我只需要检索与上次插入关联的ID(关于我的语句实例)。
我试过这个,但似乎它不适用于JDBC:
public Integer insertQueryGetId(String query) {
Integer numero=0;
Integer risultato=-1;
try {
Statement stmt = db.createStatement();
numero = stmt.executeUpdate(query);
ResultSet rs = stmt.getGeneratedKeys();
if (rs.next()){
risultato=rs.getInt(1);
}
rs.close();
stmt.close();
} catch (Exception e) {
e.printStackTrace();
errore = e.getMessage();
risultato=-1;
}
return risultato;
}
其实,每次,我都会得到risultato = -1
java.sql.SQLException: Generated keys not requested. You need to specify Statement.RETURN_GENERATED_KEYS to Statement.executeUpdate() or Connection.prepareStatement().
如何解决此问题?感谢Stackoverflow People :)