Jointure sql

Résolu
cs_amounaups Messages postés 5 Date d'inscription samedi 16 février 2008 Statut Membre Dernière intervention 4 juin 2010 - 2 juin 2010 à 13:23
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 - 4 juin 2010 à 19:02
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

cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
4 juin 2010 à 07:40
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.
3
cs_amounaups Messages postés 5 Date d'inscription samedi 16 février 2008 Statut Membre Dernière intervention 4 juin 2010
4 juin 2010 à 17:35
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
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
4 juin 2010 à 18:11
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...
0
cs_amounaups Messages postés 5 Date d'inscription samedi 16 février 2008 Statut Membre Dernière intervention 4 juin 2010
4 juin 2010 à 18:20
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
4 juin 2010 à 19:02
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");
}
0
Rejoignez-nous