Duplicata possible :
Comment obtenir l'ID d'insertion dans JDBC ?
Bonjour, j'utilise JDBC pour me connecter à une base de données via Java.
Maintenant, je fais une requête d'insertion, et j'ai besoin d'obtenir l'id de la dernière valeur insérée (donc, après un stmt.executeUpdate
).
Je n'ai pas besoin de quelque chose comme SELECT id FROM table ORDER BY id DESC LIMIT 1
car je risque d'avoir des problèmes de concurrence.
J'ai juste besoin de récupérer l'identifiant associé à la dernière insertion (sur mon instance du Statement).
J'ai essayé, mais il semble que cela ne fonctionne pas avec 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;
}
En fait, à chaque fois risultato = -1
et j'obtiens java.sql.SQLException: Generated keys not requested. You need to specify Statement.RETURN_GENERATED_KEYS to Statement.executeUpdate() or Connection.prepareStatement().
Comment puis-je résoudre ce problème ? Merci aux gens de Stackoverflow :)
0 votes
Voir ma question : stackoverflow.com/questions/4224228/
0 votes
Duplicata de Comment obtenir l'ID d'insertion dans JDBC ?