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ération des clefs générées automatiquement


Sujet :

JDBC Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juin 2007
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 33
    Points : 31
    Points
    31
    Par défaut récupération des clefs générées automatiquement
    Bonjour,

    Je travaille avec java 5.0 et une base de données MySQL en local sur ma machine. J'utilise le connecteur jdbc mysql-connector-java-5.0.6.

    Lorsque j'insère des éléments dans une table de ma base de donnée, je désire récupérer les id générés (qui sont bien définis en auto_increment et en primary key). Pour cela, j'utilise le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
     
    PreparedStatement _pstat = _conn.prepareStatement("INSERT INTO table (chose,machin,truc,bidule) VALUES (?,?,?,?)",Statement.RETURN_GENERATED_KEYS);
     
    ResultSet			rs, rsId;
     
    _pstat.clearParameters();
    _pstat.setString(1,lui.getChose());
    _pstat.setString(2,lui.getMachin());
    _pstat.setString(3,lui.getTruc());
    _pstat.setString(5,lui.getBidule());
     
    _pstat.executeUpdate();
     
    rsId = _statement.getGeneratedKeys();
     
    if(rsId.next())
    {
    	id_ved = rsId.getInt(1);
    }
    else
    {
            System.out.println("erreur");
    }
    rsId.close();
    J'ai déjà utilisé cette méthode il y a plusieurs mois avec succès (avec un autre connector, mais j'ai essayé de remettre l'ancien, ça ne change rien).

    Aujourd'hui ça ne fonctionne plus. Mon rsId demeure désespéremment vide. Je tourne en rond sans comprendre pourquoi.

    Quelqu'un pourrait-il m'aider?

  2. #2
    Nouveau membre du Club
    Inscrit en
    Juin 2007
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 33
    Points : 31
    Points
    31
    Par défaut résolution
    J'ai trouvé la solution.

    Mon problème venait de l'utilisation des PreparedStatement, qui nécessite d'employer PreparedStatement.RETURN_GENERATED_KEYS et de récupérer ces clefs non sur le statement mais sur le prepared Statement.

    Ce qui donne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
     
    PreparedStatement _pstat = _conn.prepareStatement("INSERT INTO table (chose,machin,truc,bidule) VALUES (?,?,?,?)",PreparedStatement.RETURN_GENERATED_KEYS);
     
    ResultSet			rs, rsId;
     
    _pstat.clearParameters();
    _pstat.setString(1,lui.getChose());
    _pstat.setString(2,lui.getMachin());
    _pstat.setString(3,lui.getTruc());
    _pstat.setString(5,lui.getBidule());
     
    _pstat.executeUpdate();
     
    rsId = _pstat.getGeneratedKeys();
     
    if(rsId.next())
    {
    	id_ved = rsId.getInt(1);
    }
    else
    {
            System.out.println("erreur");
    }
    rsId.close();
    A défaut d'avoir été aidé, peut-être que ça aidera quelqu'un...

    bon week-end à tous

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 08/08/2008, 20h14
  2. [Bouncy Castle] Taille des clefs générées avec ECDSA
    Par nedned dans le forum Sécurité
    Réponses: 1
    Dernier message: 26/06/2008, 15h49
  3. Login/Mot de passe et récupération des infos pour connection automatique
    Par kitesilver dans le forum Général Conception Web
    Réponses: 4
    Dernier message: 07/06/2007, 14h51
  4. récupération des clés générées automatiquement
    Par giannichedda dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 07/05/2007, 13h52
  5. [sqlserver] Récupération des clefs générées
    Par if_zen dans le forum JDBC
    Réponses: 1
    Dernier message: 20/07/2006, 22h10

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