bonjour,
je dois effectuer une insertion dans une base de données mysql. j'ai une table avec deux champs, dont la clef en auto-increment.
j'ai une premiere methode qui me permet de preparer ma requete pour une insertion :
conn : objet Connect
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 public void paramPrstmtInsert() { try { prstmt = conn.prepareStatement("INSERT INTO ? VALUES ('?')"); } catch (SQLException E) { System.out.println("Erreur lors de la preparation du preparedStatement"); System.out.println("SQLException : " + E.getMessage()); } }
prstmt : objet PreparedStatement
Les paramètres à entrer par la suite correspondent donc au nom de la table (avec eventuellement les champs concernés entre parenthèse) et les données à inserer dans les champs de la base.
puis j'ai une deuxieme méthode qui me permet d'inserer mes données à partir de ma requete paramétrée :
dans mon programme de test, je commence à me connecter à ma base, puis j'applique mes 2 requete :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 public int insertDatabase(String param1, String param2) { int nb =0; try { prstmt.setString(1, param1); prstmt.setString(2, param2); nb = prstmt.executeUpdate(); } catch (SQLException E) { System.out.println("Erreur lors de l'envoie à la requete : "); System.out.println("SQLException : " + E.getMessage()); } return nb; }
Cependant, lors de l'execusion, j'ai cette erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 ConnectionBase connection2 = new ConnectionBase(); connection2.connect("mabase", "root", "monpswd"); connection2.paramPrstmtInsert(); connection2.insertDatabase("matable(monchamps)", "données_a_inserer");
savez vous d'ou peut venir mon probleme? je ne vois pas ou je peux etre en dehors des index.SQLException : Parameter index out of range (2 > 1).
merci d'avance.
Partager