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'une méthode ajouter et l'utiliser dans une méthode supprimer


Sujet :

JDBC Java

  1. #1
    Membre habitué Avatar de cashmoney
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 298
    Points : 149
    Points
    149
    Par défaut Récupérer l'ID d'une méthode ajouter et l'utiliser dans une méthode supprimer
    Bonjour,
    je voudrais suprimer dans ma table le champs où le nom = 'ECRAN' et l'ID = ? (Id récupére dans la table).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    ...
    conn = connection_BDD();
    stm = conn.createStatement();
    String reqSql = "DELETE FROM COMPOSANT WHERE NOM_COMPOSANT = 'ECRAN' AND ID_COMPOSANT = ?";
    <----- Comment récupréré l'ID du composant que je veux supprimer?
    stm.executeUpdate(reqSql);
    ...
    j'ai pensé à un select de tous les composants avec nom écran et avoir l' ID de celui que je veux et ensuite le passer en paramètre pour suppression du champs.
    Merci pour votre aide

  2. #2
    Membre habitué Avatar de cashmoney
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 298
    Points : 149
    Points
    149
    Par défaut
    J'ai pensé aussi à cette solution, Mais je ne sais toujours pas comment utiliser l'ID récupéré dans ma classe inséré afin de l'utiliser pour une éventuelle supression
    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
     
    public Integer maMéthodeAjouter(Ecran e) {
    Connection conn = null;
    ...
    Integer ID_COMPOSANT = 0;
    try{
    ...
    conn = connection_BDD()
    prstm = conn.prepareStatement("INSERT INTO COMPOSANT (ID_COMPOSANT, ...) values(SEQCOMPO.nextval,...?)",new String[]{"ID_COMPOSANT"})
    ...
    ResultSet res = prstm.getGeneratedKeys();
    if(res.next()) ID_COMPOSANT = res.getInt(1);<------ID_COMPOSANT récupéré
    ...
    return D_COMPOSANT;<----- obtention de l'ID après ajout
        }
    Maintenant que j'ai l'ID de l'objet inséré comment l'utiliser dans ma méthode supprimer ??

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    public void maMéthodeSupprimer (Ecran e){
    Connection conn = null;
    ...
    try{
    ...
    conn = connection_BDD();
    stm = conn.createStatement();
    String reqSql = "DELETE FROM COMPOSANT WHERE NOM_COMPOSANT = 'ECRAN' AND ID_COMPOSANT = ?";<------ utilisation de l'ID obtenu??
    stm.executeUpdate(reqSql);
    ...
    }
    Merci pour votre aide parce que je suis sur plusieurs fronts en même temps je travaille en même temps sur un IHM alors je sature à force. Certainement c'est dû à la fatigue

  3. #3
    Expert éminent sénior
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Points : 21 324
    Points
    21 324
    Par défaut
    C'est tout simple, il faut utiliser un PreparedStatement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    PreparedStatement statement = conn.prepareStatement(
        "DELETE FROM COMPOSANT WHERE NOM_COMPOSANT = 'ECRAN' AND ID_COMPOSANT = ?");
    statement.setInt(1, ID_COMPOSANT);
    stm.executeUpdate();
    Et pour éviter de t'embêter avec les guillemets, je te conseille de mettre aussi le nom du composant en paramètre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    PreparedStatement statement = conn.prepareStatement(
        "DELETE FROM COMPOSANT WHERE NOM_COMPOSANT = ? AND ID_COMPOSANT = ?");
    statement.setString(1, "ECRAN");
    statement.setInt(2, ID_COMPOSANT);
    stm.executeUpdate();

  4. #4
    Membre habitué Avatar de cashmoney
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 298
    Points : 149
    Points
    149
    Par défaut
    Oui, c'est sure que c'est simple quand tu connais l'ID. mais au cas où tu ne connais pas l'ID, comment est ce que tu procèdes??
    Merci

Discussions similaires

  1. Réponses: 10
    Dernier message: 09/04/2015, 19h17
  2. [MySQL] recuperer une valeur dans une liste deroulante pour l'utiliser dans une seconde liste
    Par tortue_22 dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 12/05/2010, 11h50
  3. Réponses: 5
    Dernier message: 04/12/2008, 15h58
  4. Réponses: 1
    Dernier message: 22/06/2008, 22h47
  5. Réponses: 2
    Dernier message: 05/10/2007, 23h49

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