Mise à jour d'une table en JSP

Mise à jour d'une table en JSP - Java - Programmation

Marsh Posté le 07-10-2009 à 20:05:31    

Bonsoir,
je voudrais faire la mise à jour d'une table (base de données Access) dans ma page JSP,
alors j'ai mis le code suivant :

Code :
  1. PreparedStatement stmt = connection.prepareStatement("UPDATE employee SET Nom = 'XXX'" );
  2. stmt.setInt(1, 1);
  3. stmt.setString(2, "XX" );
  4. stmt.setString(3, "XXX" );
  5. stmt.executeUpdate();


mais j'obtiens l'erreur suivant:
javax.servlet.ServletException: L'index 1 est hors limites
 
besoin d'aide,
et merci  :)  

Reply

Marsh Posté le 07-10-2009 à 20:05:31   

Reply

Marsh Posté le 07-10-2009 à 21:22:12    

ça donne envie ton projet...

 

sinon, tu essaies de valoriser les attributs de ta requête, mais j'en vois aucun.


Message édité par brisssou le 07-10-2009 à 21:22:24

---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
Reply

Marsh Posté le 08-10-2009 à 02:42:30    

Il faut voir le type de données SQL du champ associé à la première variable de ton PreparedStatement (incomplet ici dans ton exemple puisque comme Brissou, je ne vois aucun "?" ).
Si ce n'est pas le type SQL INTEGER, tu dois peut-être utiliser setBigDecimal() ou setShort() au lieu de setInt().

Reply

Marsh Posté le 08-10-2009 à 18:53:36    

j'ai modifié le code par :

Code :
  1. PreparedStatement stmt = connection.prepareStatement("UPDATE employee SET Id=?, Nom=?, Prenom=?" );
  2. stmt.setInt(1, 1);
  3. stmt.setString(2, "xx" );
  4. stmt.setString(3, "xx" );
  5. stmt.executeUpdate();


alors je n'obtiens plus le message d'erreur, mais aucune mise à jour ne se fait ! :sweat:  
 

Reply

Marsh Posté le 08-10-2009 à 20:55:31    

il manque pas un where ?
 
t'aurais pas un gros message d'erreur te disant que tu peux pas avoir des ID en doubles ??


---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
Reply

Marsh Posté le 08-10-2009 à 22:48:29    

Oui Marakima, tu devrais d'abord apprendre le SQL.
 
Je pense que ta requête devrait être:
 

"UPDATE employee SET Nom='?', Prenom='?' WHERE Id=?"


 

Reply

Marsh Posté le 09-10-2009 à 14:16:49    

Ah désolé désolé !!
je me suis trompé dans la syntaxe, voilà :

Code :
  1. PreparedStatement stmt = connection.prepareStatement("UPDATE employee SET Nom=?, Prenom=? WHERE Id=?" );
  2. stmt.setInt(1, 1);
  3. stmt.setString(2, "XX" );
  4. stmt.setString(3, "XX" );
  5. stmt.executeUpdate();


mais le problème c'est que la mise à jour ne se fait pas,
et je reçois le message suivant:
 
cause mère
java.lang.IllegalArgumentException: Cannot create table with name of existing table

 
alors qu'est ce que je pourrais faire pour régler ce problème ?


---------------
In A Different Time...In Another Place...We'll Meet Again...
Reply

Marsh Posté le 09-10-2009 à 14:52:50    

Je ne vois pas le rapport vu que tu fais un update et non un create, mais je te rappelle que vu qu'on a changé l'ordre des paramètres dans la requête, tu dois adapter le reste du code en conséquence (string, string, int et pas int, string, string).

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed