J'ai un problème de requête SQL:

Par exemple, j'ai 2 tables dans la base produit(num, nom,idCatégorie#)
et catégorie(idCatégorie, libellé_catégorie).
Dans l'interface graphique, j'ai un jTable et un bouton "ajouter" qui va insérer les données de jTable dans la table produit. Les colonnes de jTable sont : NumProduit, NomProduit, CatégorieProduit.

Le problème, c'est que, dans la colonne CatégorieProduit, je dois saisir le libellé de la Catégorie du produit. Mais dans la base, la table produit ne contient pas libellé produit, il contient IdCatégorie

Code :

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
//récuperer le champs catégorieProduit
int a=jTable1.getSelectedRow();
 
       Object CatPro=jTable1.getModel().getValueAt(a,0);
         System.out.println("la valeur de '"+a+" et 0' ="+CatPro);
//pour la base de données
 try{
 
      Class.forName("com.mysql.jdbc.Driver");
      Connection con=NULL;
      con =       (Connection) DriverManager.getConnection( "jdbc:mysql://localhost:3306/mabase?user=root&password=");
      Statement st=(Statement) con.createStatement();
 
      ResultSet rs = st.executeQuery("SELECT idCatégorie from  catégorie WHERE Libellé_Catégorie = "+CatPro);
 
       st.executeUpdate("insert into Produit values('"+num+"','"+nom+"','"+CatPro+"')");
 
       }catch(Exception e)
           {System.out.println(e.toString());
            System.out.println("EXCEPTION !!!!");
             }

Une exception est déclenchée :

la valeur de '0 et 2' = Catégorie X1

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'catégorie X1' in 'where clause'

BUILD SUCCESSFUL (total time: 4 minutes 16 seconds)

Donc je n'arrive pas à insérer les données saisies

un coup de main SVP

Merci d'avance