Maison > base de données > tutoriel mysql > Comment récupérer les identifiants générés automatiquement après une opération INSERT dans JDBC ?

Comment récupérer les identifiants générés automatiquement après une opération INSERT dans JDBC ?

Susan Sarandon
Libérer: 2025-01-23 18:53:10
original
845 Les gens l'ont consulté

How to Retrieve Auto-Generated IDs After an INSERT Operation in JDBC?

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>
Copier après la connexion

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 :

  • Oracle : Employez un CallableStatement avec une clause RETURNING ou exécutez une requête SELECT CURRVAL(sequencename) après l'INSERT.
  • MySQL : Utilisez 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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal