Maison >base de données >tutoriel mysql >Comment récupérer l'ID d'insertion après avoir utilisé JDBC ?
Accès aux ID d'enregistrement nouvellement insérés avec JDBC
Ce guide explique comment récupérer l'ID généré automatiquement après l'insertion d'un enregistrement de base de données à l'aide de JDBC. Plusieurs approches existent, selon votre système de base de données.
Tirer parti Statement#getGeneratedKeys()
Pour les bases de données prenant en charge les clés générées automatiquement, la méthode Statement#getGeneratedKeys()
fournit une solution simple. Cette méthode renvoie un ResultSet
contenant les clés générées. Surtout, vous devez demander au pilote JDBC de restituer ces clés en spécifiant Statement.RETURN_GENERATED_KEYS
lors de la préparation de la déclaration.
Exemple illustratif :
<code class="language-java">try ( Connection connection = dataSource.getConnection(); PreparedStatement statement = connection.prepareStatement(SQL_INSERT, Statement.RETURN_GENERATED_KEYS); ) { // Set statement parameters // ... int affectedRows = statement.executeUpdate(); if (affectedRows == 0) { throw new SQLException("Record insertion failed, no rows affected."); } try (ResultSet generatedKeys = statement.getGeneratedKeys()) { if (generatedKeys.next()) { user.setId(generatedKeys.getLong(1)); } else { throw new SQLException("Record insertion failed, no ID obtained."); } } }</code>
Alternatives spécifiques à la base de données
Il est important de noter que Statement#getGeneratedKeys()
n'est pas universellement pris en charge par tous les pilotes JDBC. Des méthodes alternatives existent pour des systèmes de bases de données spécifiques :
CallableStatement
avec une clause RETURNING
ou exécutez une requête SELECT CURRVAL(sequencename)
après l'opération d'insertion.Statement#getGeneratedKeys()
.Statement#getGeneratedKeys()
.Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!