Jointure sql [Résolu]

Signaler
Messages postés
5
Date d'inscription
samedi 16 février 2008
Statut
Membre
Dernière intervention
4 juin 2010
-
Messages postés
6413
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
-
bonjour,
j'ai un probleme au niveau du code j'arrive pa a assimiler les choses
je ss entrain de réaliser une application gestion commerciale en netebeans et je veux faire la jointure entre 2 table que j'ai designation et totalunitaire dans la table produit et quantite ,total Ht en detailcommande mnt je veu inserer les informations dans jtable que j'ai sur netbeans
Connection cn = Connexion.connectDB();
        try{
Statement st=cn.createStatement();
     Date dt =Date.valueOf(dateCombobean1.getDateFormatString());
     int i=st.executeUpdate("insert into autreformation(dateactuel) values('"+dt+"')");

if(i==1)

    cn.close();
        }

     catch(Exception e){
        JOptionPane.showMessageDialog(null, e.getMessage());


    }
       try{

            Connection cn = Connexion.connectDB();
            Statement st = cn.createStatement();
            String c = (String) comboclient.getSelectedItem();
            int t = st.executeUpdate("select a.designation ,a.prixunitaire ,b.quantite,b.PrixU ,b.PrixT from produit as a ,detailcommande as b 
            remplirtable();
            if(t!= 0){
                JOptionPane.showMessageDialog(this,"Votre enregistrement a été effectué avec succés!");}

            cn.close();

        } catch(Exception e){
            JOptionPane.showMessageDialog(null, e.getMessage());
        }

}                                        

il y a des erreurs au niveau du code s'il vous plait aider moi
voila mon email pr me repondre limam.amina@gmail.com

5 réponses

Messages postés
6413
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
286
Je pense qu'il aurait été préférable de poster ton message sur le forum java, mais bon, c'est pas grave.

Quand tu fais un executeUpdate, c'est que tu modifies la table, la méthode te retourne un code de sortie qui te dis si oui ou non, il y a eu une erruer. Dans le cas ou tu fais un select sur la table, il ne faut pas utiliser executeUpdate mais executeQuery qui te retourne un ResultSet avec les résultats de ta requete.

Tu ne geres pas correctement les exceptions, normalement il faut faire ce qui suit pour être certain que ta connexion est bien fermée :
try{
   connexion.ouvrir();
   //Suite du traitement
catch(Excepion e){
   JOptionPane.showMessageDialog(null, e.getMessage());
}
finally{
   try{
      connexion.fermer()
   }
   catch(Exception e){
   }
}
}


Le problème est que tu gères tes exception, et c'est un très bonne chose une fois que l'application est finie, cependant, tant que tu es à l'étape de conception, et que tu sais que tu vas avoir des erreur, il vaut mieux mettre // devant le code JOptionPane.show... et faire un e.printStackTrace() au moins, tu vois d'où vient l'erreur.
Messages postés
5
Date d'inscription
samedi 16 février 2008
Statut
Membre
Dernière intervention
4 juin 2010

merci pour ta reponse julien c'est pa ça le preblem mais ca va comme même je vai l'appliquer mon actuel problem c'est comment faire la jointure entre deux table dans le code java
je veux inserer dans JTable en suite quand la ligne est saisie je click sur le boutton enregistrer il y a un msg qui s'affiche que l'enregitrement dans la BD est parfait par exemple
tu a compris
la table produit avec des attributs (designation,prix unitaire
detailcommande(quantite,Prixtotal unitaire, remise )
le tableau sur netbeans et le suivant:
Designation |Quantite| Prix unitaire |Prixtotal unitaire|remise
mnt je veux savoir l'insertion a la base de donnee a traver Jtable

j'ai pensé de faire une procedure de jointure entre les deux tables et au niveau java je tape le code
executeQuery ="insert into lenomdeprocedure value(...........
j'attend la reponse
Messages postés
6413
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
286
Non ca ne marchera pas, tu ne peux pas faire un insert into avec executeQuery, la règle c'est si ton instruction modifie les tables, tu fais un executeUpdate et sinon un executeQuery.

Je ne vois pas quel est ton problème avec la jointure, la totalité du code n'a pas été affiché dans la fenetre, je ne vois donc pas l'erreur...
Messages postés
5
Date d'inscription
samedi 16 février 2008
Statut
Membre
Dernière intervention
4 juin 2010

d'accord c'est quoi le code pour faire tous ces etapes que je j'ai monsioner dans le 2eme msg
merci de m'aider et me donner le code correct
Messages postés
6413
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
286
Tu n'es pas précis dans tes explications, je ne sais pas ce qu'il te manque.

Pour faire la jointure de tes deux tables avec la variable id
Resultset res = st.executeQuery("SELECT * FROM table1 table2 WHERE table1.id=table2.id");
Et après, il faut parcourir ta resultset
while(res.next()){
    //Pour récuperer les valeurs
   res.getString("NomColonne1");
   res.getString("nomColonne2");
}