JDBC et SQL

Fermé
midow34 Messages postés 5 Date d'inscription lundi 13 mai 2013 Statut Membre Dernière intervention 15 mai 2013 - 13 mai 2013 à 23:31
 Flog78 - 17 mai 2013 à 11:17
Bonjour,
je viens vous voir ce soir parce que j'ai un problème de requête, je vous explique :

Enfait, j'ai deux tables de ma base de données : Categorie et regles .

Pour catégorie:

J'ai donc créer cette table catégorie qui contient 5 champs : ( cat_id, nom, aff, typeAff,letEx, letAd) avec cat_id comme clé primaire en auto-incrément.

depuis mon programme sur eclipse, j'arrive à me connecter à la base et à remplir cette base avec déclarations sans soucis, voici le code :
 public static int InsertCategorieToDB( String nom_db, String affixe_db, String typeAffixe_db, char lettreException_db, char lettreAdditionnelle_db){
        String url = "jdbc:mysql://localhost/db_deriv";
        String login = "root";
        String passwd = "";
        Connection cn =null;
        Statement st =null;
        try {
 
            //  Chargement du driver
            Class.forName("com.mysql.jdbc.Driver");
 
            // r?cup?ration de la connexion
            cn = DriverManager.getConnection(url, login, passwd);
 
            // Création d'un statement
            st = cn.createStatement();
 
 
 
String ins_categorie_db =(
        "INSERT INTO CategorieMorphologique (nom , affixe , typeAffixe ,lettreException, lettreAdditionnelle)"
        + " VALUES"
        + "('"+ nom_db + "','" + affixe_db +
         "','" + typeAffixe_db + "','"
        + lettreException_db + "','"
        + lettreAdditionnelle_db + "')");
 
st.executeUpdate(ins_categorie_db);
             
 
        } catch (SQLException e) {
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
             
            e.printStackTrace();
        } finally {
            try {
            //  libérer ressources de la mémoire.
                cn.close();
                st.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        return 0;
         
    }


Pour Regle : (là est le problème)

Donc là, j'ai créé ma table aussi, avec trois champs :(regle_id, catBase_id, catFinale_id) avec regle_id en clé primaire autoincrément, et je veux la remplir les deux champs en même temps, catbase_id et catFinale_id , avec des id que je veux récupérer du champ catégorie_id de la premiere table categorie ci dessus.

Et je n'y arrive pas, je ne suis pas très très fort en sql ni en java non plus, j'ai besoin de votre amabilité et de votre aide svp .

voici ce que j'ai fais pour regles (qui ne marche pas) :
public static void InsertRegleToDB(int catBase_db,int catFinale_db){
    String url = "jdbc:mysql://localhost/db_deriv";
    String login = "root";
    String passwd = "";
    Connection cn =null;
    Statement st =null;
    try {
 
        //  Chargement du driver
        Class.forName("com.mysql.jdbc.Driver");
 
        // récupération de la connexion
        cn = DriverManager.getConnection(url, login, passwd);
 
        // Création d'un statement
        st = cn.createStatement();
 
 
 
        String ins_regle_db =(
    "INSERT INTO Regle (catBase_id,catFinale_id) VALUES("+ catBase_db + "','"
            + catFinale_db + "')");
 
 
        //exécution requéte
         
        st.executeUpdate(ins_regle_db);
         
 
    } catch (SQLException e) {
        e.printStackTrace();
    } catch (ClassNotFoundException e) {
         
        e.printStackTrace();
    } finally {
        try {
        //  libérer ressources de la mémoire.
            cn.close();
            st.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }


Avec mon programme, voila ce que je fais :
int C1 = InsertCategorieToDB("v","er","suf",' ',' ');
int C2 =InsertCategorieToDB("v", "er", "suf", 'g', 'e');
int C3 =InsertCategorieToDB("a", "able", "s",' ',' ');
int C4 =InsertCategorieToDB("a", "ant", "su",' ',' ');

et l'idéal pour moi serai de faire ça pour remplir regles, par exmple :
InsertRegleToDB(C1,C3);
InsertRegleToDB(C2,C3);
InsertRegleToDB(C3,C1);


Je vous remercie,
cordialement


A voir également:

4 réponses

midow34 Messages postés 5 Date d'inscription lundi 13 mai 2013 Statut Membre Dernière intervention 15 mai 2013
13 mai 2013 à 23:51
S'il vous plaît je bloque dessus c'est très important pour un projet dans le cadre de mes études :(
0
midow34 Messages postés 5 Date d'inscription lundi 13 mai 2013 Statut Membre Dernière intervention 15 mai 2013
14 mai 2013 à 00:19
Re bonsoir,

j'ai un peu avancé... Donc là, j'insert dans la table categorie normalement mes catégorier remplies avec chacune son id de 1 à 4

aussi, j'insert dans regle des champs avec des id de 1 à 3 comme prévu, parcontre les champs catB et catF sont à 0 et n'ont pas les ids que je veux
0
midow34 Messages postés 5 Date d'inscription lundi 13 mai 2013 Statut Membre Dernière intervention 15 mai 2013
14 mai 2013 à 20:03
up :(
0
Il manque un guillement avant catBase_db , après la parenthèse :
String ins_regle_db =("INSERT INTO Regle (catBase_id,catFinale_id) VALUES ("+ catBase_db + "','"+ catFinale_db + "')");
0