가능한 중복의 ID를 가져옵니다 :
How to get the insert ID in JDBC?MySQL을 & 자바 - 마지막 삽입 값 (JDBC)
안녕, 나는 자바에서를 통해 데이터베이스에 연결하기 위해 JDBC를 사용하고 있습니다.
이제 삽입 쿼리를 수행하고 마지막으로 삽입 한 값 (예 : stmt.executeUpdate
)의 ID를 가져와야합니다.
동시성 문제가있을 수 있으므로 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().
를 얻을? 덕분에 유래 사람들 :
내 질문보기 : http://stackoverflow.com/questions/4224228/preparedstatement-with-statement-return-generated-keys –
[JDBC에서 삽입 ID를 얻는 방법]이 중복되었습니다. (http : // stackoverflow .com/questions/1915166/how-to-get-the-insert-id-in-jdbc) – BalusC