IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JDBC Java Discussion :

Récupérer l'id d'un tuple inséré


Sujet :

JDBC Java

  1. #1
    Membre expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Points : 3 080
    Points
    3 080
    Par défaut Récupérer l'id d'un tuple inséré
    Salut,

    Comment faire pour récupérer l'id d'un tuple inséré (et être sûr que c'est bien le DERNIER tuple inséré)?

    J'avais une "méthode":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    connex.setAutoCommit(false);
    ...
    //on insère le tuple
    ...
    //on récupère la dernière valeur...
    ResultSet result = stmt.executeQuery("SELECT LAST_INSERT_ID() AS last_id");
    ...
    connex.commit();
    Plusieurs problèmes:

    Est-on vraiment sûr qu'on récupère bien la DERNIERE valeur? (dans un environnement multi-thread, ou encore si plusieurs personne de plusieurs PC différents accèdent à la base?

    Pour moi, .setAutoCommit(false) ne fait pas grand chose, car si je fais un setAutoCommit(false), que j'insère à la suite par exemple 1000 tuples assez gros, et à la fin je fais commit(), je peux voir les tuples s'ajouter "les uns après les autres" à partir d'une page PHP qd je fais "F5", et non "tout d'un coup".

    Pouvez-vous m'éclairer svp?

  2. #2
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par ®om
    Comment faire pour récupérer l'id d'un tuple inséré (et être sûr que c'est bien le DERNIER tuple inséré)?
    Ceci serait surement une meilleure solution :

    Comment récupérer les clefs auto-générées par l'exécution du Statement ?

    a++

  3. #3
    Membre expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Points : 3 080
    Points
    3 080
    Par défaut
    Citation Envoyé par adiGuba
    Salut,



    Ceci serait surement une meilleure solution :

    Comment récupérer les clefs auto-générées par l'exécution du Statement ?

    a++
    Génial, merci beaucoup

  4. #4
    Membre expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Points : 3 080
    Points
    3 080
    Par défaut
    Et pour les PreparedStatement, comment fait-on?

    Certes, PreparedStatement étend Statement, mais il n'y a pas de nouvelle méthode .execute(int autoGeneratedKeys), il n'y a que .execute(String sql, int autoGeneratedKeys) héritée de Statement. Or, dans un PreparedStatement, on ne passe bien sûr pas de requête SQL....

    EDIT: Résolu, en fait il faut passer la valeur autoGeneratedKeys dans Connection#prepareStatement(...)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Récupérer dernier tuple inséré ou modifié
    Par Supgeek01 dans le forum Langage SQL
    Réponses: 7
    Dernier message: 11/04/2013, 11h20
  2. Réponses: 3
    Dernier message: 25/08/2008, 16h42
  3. Réponses: 2
    Dernier message: 30/11/2005, 09h55
  4. Réponses: 5
    Dernier message: 01/02/2005, 17h29
  5. Comment récupérer l'index du dernier élément inséré ?
    Par Didier100 dans le forum Bases de données
    Réponses: 4
    Dernier message: 15/07/2004, 22h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo