Obtention de l'ID généré automatiquement après une INSERT dans JDBC
Dans JDBC, récupérer l'ID généré par une instruction INSERT est essentiel, notamment lors de l'utilisation de clés ou de séquences à incrémentation automatique. Ce guide présente plusieurs méthodes pour y parvenir.
Utilisation de Statement.RETURN_GENERATED_KEYS
:
L'approche la plus simple exploite le drapeau Statement.RETURN_GENERATED_KEYS
de JDBC. Lorsqu'il est utilisé avec PreparedStatement
ou CallableStatement
, cela demande au pilote de renvoyer les clés nouvellement générées.
Exemple :
<code class="language-java">PreparedStatement statement = connection.prepareStatement(SQL_INSERT, Statement.RETURN_GENERATED_KEYS); // ... execute the INSERT statement ... ResultSet generatedKeys = statement.getGeneratedKeys(); if (generatedKeys.next()) { long insertId = generatedKeys.getLong(1); // Get the first generated key }</code>
Solutions spécifiques aux bases de données :
Si RETURN_GENERATED_KEYS
n'est pas pris en charge par votre base de données ou votre pilote, des requêtes spécifiques à la base de données sont nécessaires :
CallableStatement
avec une clause RETURNING
ou exécutez une requête SELECT CURRVAL(sequencename)
après l'INSERT.SELECT LAST_INSERT_ID()
pour récupérer l'ID inséré le plus récemment.Compatibilité des pilotes JDBC :
N'oubliez pas que la prise en charge de RETURN_GENERATED_KEYS
peut varier selon les pilotes JDBC. Consultez la documentation de votre pilote pour confirmer ses capacités. Les conducteurs plus âgés peuvent avoir besoin de méthodes alternatives.
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!