Comment récupérer l'id généré via JDBC lors de l'insertion dans une table avec auto increment

Publié le 21 Février 2012

Voilà le problème:

J'effectue une requête SQL INSERT dans une table qui a un auto increment et j'ai besoin de récupérer l'id généré qui correspond à mon INSERT.

JDBC fournit la mécanique pour ça (après il faut que la base derrière le gère - avec MySQL pas de problème):

String query = "INSERT INTO ...";
Statement statement = null;
try{
   // Il faut récupérer une instance de connection - généralement ça passe par un pool
   // et il faut bien préciser le flag RETURN_GENERATED_KEYS

   statement = connection.prepareStatement(query, Statement.RETURN_GENERATED_KEYS);
   statement.execute();
   ResultSet rs = statement.getGeneratedKeys();
   if (rs != null && rs.first()) {
      // on récupère l'id généré
      long generatedId = rs.getLong(1);
   }
}
catch(SQLException e){
   e.printStackTrace();
}
finally{
   if(statement != null){
      statement.close();
   }
}
 

Rédigé par Bliz

Publié dans #Java

Repost 0
Commenter cet article

wilfried 22/07/2015 12:30

bonjour j'essaye ce code mais ça ne marche pas la condition du if n'est pas vrai qd je met uniquement rs!=null ça entre mais ça me renvoie une erreur java.sql.SQLException