Maison >base de données >tutoriel mysql >Comment récupérer l'ID d'auto-incrémentation à partir des instructions préparées ?

Comment récupérer l'ID d'auto-incrémentation à partir des instructions préparées ?

DDD
DDDoriginal
2024-11-19 21:04:02517parcourir

How to Retrieve Autoincrement ID from Prepared Statements?

Récupération de l'ID d'auto-incrémentation à partir des instructions préparées

Lors de l'exécution de requêtes à l'aide d'instructions préparées, il peut être souhaitable de récupérer l'ID généré automatiquement associé à une ligne nouvellement insérée. Ceci est possible à l'aide d'instructions préparées, mais nécessite une légère modification de l'approche traditionnelle.

Dans les méthodes traditionnelles, la constante AutoGeneratedKeys est utilisée avec la méthodeexecuteUpdate() d'un objet Statement. Cependant, cette approche n'est pas applicable aux déclarations préparées. Au lieu de cela, les étapes suivantes peuvent être suivies :

  1. Spécifiez l'indicateur Statement.RETURN_GENERATED_KEYS comme deuxième paramètre de la méthode prepareStatement(). Ceci informe la base de données que la requête produira des clés générées automatiquement.
  2. Exécutez l'instruction préparée à l'aide de la méthode executeUpdate() comme d'habitude.
  3. Récupérez les clés générées à l'aide de la méthode getGeneratedKeys() de l'instruction préparée.
  4. Parcourez l'ensemble de résultats et récupérez l'instruction générée automatiquement. ID.

Voici un extrait de code modifié qui illustre cette approche :

String sql = "INSERT INTO table (column1, column2) values(?, ?)";
stmt = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);

stmt.executeUpdate();
if (returnLastInsertId) {
   ResultSet rs = stmt.getGeneratedKeys();
    rs.next();
   auto_id = rs.getInt(1);
}

En suivant ces étapes, vous pouvez récupérer avec succès l'ID généré automatiquement à partir d'une instruction préparée, permettant vous pour accéder à l'identifiant unique de la ligne nouvellement insérée.

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!

Déclaration:
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