2 pièce(s) jointe(s)
Problème de connection DAO
Salut à tous,
Je développe une petite interface qui permet d'afficher les Ingrédient d'une recette sélectionnée. Rien de bien ambitieux la dedans mais je ne vois pas mon erreur lorsque je tente de remplir ma liste déroulante de recette :
Lorsque je choisit "consulter" et "recette", je créer un objet de type FenetreListerRecette :
Code:
1 2 3 4 5
| FenetreListerRecette IHM2 = new FenetreListerRecette();
IHM2.setBounds(100, 100, 550, 300);
IHM2.setVisible(true);
IHM2.setTitle("Choix de la recette");
IHM2.getContentPane(); |
Voici ma class FenetreListerRecette :
Code:
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 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
| package IHM;
import metier.*;
import javax.swing.* ;
import java.awt.* ;
import java.awt.event.*;
import DAO.*;
class FenetreListerRecette extends JDialog implements ActionListener
{
private Container contenu;
private JButton annuler;
private JButton valider;
private JComboBox liste_Recette;
private JTextArea txtaIngr;
public FenetreListerRecette()
{
contenu=new Container();
this.contenu=this.getContentPane();
this.contenu.setLayout(null);
this.txtaIngr =new JTextArea();
this.contenu.add(txtaIngr);
this.txtaIngr.setBounds(20,75,300,150);
//LISTE IMPRIMANTE
this.liste_Recette = new JComboBox(DAO_Projet_Cuisine.getlesRecettes());
//passe en parametre un vector récuperé grace a la methode static getlesrecette
this.contenu.add(liste_Recette);
this.liste_Recette.setBounds(20,30,300,20);
//BOUTTON ANNULER
this.annuler = new JButton("Annuler");
this.annuler.addActionListener(this);
this.contenu.add(annuler);
this.annuler.setBounds(420,30,85,20);
//BOUTTON VALIDER
this.valider = new JButton("Valider");
this.valider.addActionListener(this);
this.contenu.add(valider);
this.valider.setBounds(330,30,85,20);
}
public void actionPerformed (ActionEvent evt)
{
if (evt.getSource() == annuler)
dispose();
if (evt.getSource() == valider)
{
//transtypage
Recette REC1 = (Recette)this.liste_Recette.getSelectedItem();
for (Ingredient unIngredient : REC1.getLesIngredients())
{
String nom = unIngredient.getNomIngredient();
this.txtaIngr.append(nom);
}
}
}
} |
et voici ma DAO pour me connecté à ma base :
Code:
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 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
| package DAO;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.TreeMap;
import java.util.Vector;
import Connexion.MySqlConnection;
import IHM.*;
import metier.*;
public class DAO_Projet_Cuisine
{
public static Vector<Recette> getlesRecettes()
{
//DECLARATION VECTOR
Vector<Recette> v1;
v1 = new Vector<Recette>();
/*****************BASE DE DONNEE*****************/
//String nomPilote = "oracle.jdbc.driver.OracleDriver";
Connection connect = null;
ResultSet res_rec = null;
ResultSet res_rec2 = null;
Statement stListeRecette = null;
Statement stListeRecette2 = null;
//CONNECTION BDD + VERIF DRIVER
connect = MySqlConnection.getConnection("jdbc:mysql://localhost/projet_cuisine", "root", "");
//appele d'une methode static a partir du nom nom de la classe
//REQUETE SQL
ArrayList <Ingredient> lesIngredients;
lesIngredients = new ArrayList <Ingredient>();
try {
stListeRecette = connect.createStatement();
res_rec = stListeRecette.executeQuery("select * from Recette");
while (res_rec.next())
{
int V_NumRecette = res_rec.getInt("NumRecette");
String V_NomRecette = res_rec.getString("NomRecette");
stListeRecette2 = connect.createStatement();
res_rec2 = stListeRecette2.executeQuery("select * from constituer where Recette='"+V_NumRecette+"'");
while (res_rec2.next())
{
int V_NumIngredient = res_rec.getInt("NumIngredient");
String V_NomIngredient = res_rec.getString("NomIngredient");
String V_Unite = res_rec.getString("Unite");
Ingredient I1 = new Ingredient (V_NumIngredient,V_NomIngredient,V_Unite);
lesIngredients.add(I1);
}
Recette R1 = new Recette(V_NumRecette,V_NomRecette,lesIngredients);
v1.add(R1);
}
} catch (SQLException e) {
System.out.println("Erreur sur la requête");
}
return v1;
}
} |
Apparement le problème vient de stListeRecette = connect.createStatement();:(
Quelqu'un voit-il pourquoi ?
je met en pièce jointe mon code et mes table au cas ou quelqu'un pense avoir eut le même problème...;)