cedrickdeco
Messages postés5Date d'inscriptionmercredi 25 avril 2018StatutMembreDernière intervention28 avril 2018
-
Modifié le 25 avril 2018 à 12:50
KX
Messages postés16752Date d'inscriptionsamedi 31 mai 2008StatutModérateurDernière intervention31 août 2024
-
28 avril 2018 à 09:56
Bonjour,
j'ai dans mon code un bouton de recherche qui est sensé faire une requête select sur des tables et afficher le résultat dans un tableau. mon code ne fonctionne pas. svp j'ai besoin d'aide.voici mon code:
String query1 = "select * from vehicules where " + s + " = ?";
cedrickdeco
Messages postés5Date d'inscriptionmercredi 25 avril 2018StatutMembreDernière intervention28 avril 2018 25 avril 2018 à 13:07
Merci bcp ! j'essaye et je reviens a vous
cedrickdeco
Messages postés5Date d'inscriptionmercredi 25 avril 2018StatutMembreDernière intervention28 avril 2018 Modifié le 25 avril 2018 à 13:45
j'ai corrige mais apparement la requete n'est pas bonne.voici l'erreur console:
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '?' at line 1 at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:422) at com.mysql.jdbc.Util.handleNewInstance(Util.java:411) at com.mysql.jdbc.Util.getInstance(Util.java:386) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1053) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4120) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4052) at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2503) at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2664) at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2788) at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2738) at com.mysql.jdbc.StatementImpl.executeQuery(StatementImpl.java:1617) at gesparc.controllers.VehiculeController.btnrech(VehiculeController.java:148)
KX
Messages postés16752Date d'inscriptionsamedi 31 mai 2008StatutModérateurDernière intervention31 août 2024127
>
cedrickdeco
Messages postés5Date d'inscriptionmercredi 25 avril 2018StatutMembreDernière intervention28 avril 2018 25 avril 2018 à 13:56
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after statement closed. at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:422) at com.mysql.jdbc.Util.handleNewInstance(Util.java:411) at com.mysql.jdbc.Util.getInstance(Util.java:386) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1014) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:988) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:974) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:919) at com.mysql.jdbc.StatementImpl.checkClosed(StatementImpl.java:466) at com.mysql.jdbc.StatementImpl.executeQuery(StatementImpl.java:1476)
merci d'avance!
KX
Messages postés16752Date d'inscriptionsamedi 31 mai 2008StatutModérateurDernière intervention31 août 2024127 27 avril 2018 à 16:11
Bonjour,
Les lignes 4 à 10 ne servent rien (sauf la 5), il faut utiliser uniquement les lignes 11 à 14, sinon tu vas te retrouver à ouvrir plusieurs connexions, exécuter plusieurs requêtes... bref tout en double.
cedrickdeco
Messages postés5Date d'inscriptionmercredi 25 avril 2018StatutMembreDernière intervention28 avril 2018 28 avril 2018 à 08:04
Bonjour KX,
Stp excuse moi de te déranger;jusque la le code ne passe toujours pas.voici l'erreur console qui porte sur le ? du prepareStatement:
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '?' at line 1
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
at com.mysql.jdbc.Util.getInstance(Util.java:386)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1053)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4120)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4052)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2503)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2664)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2788)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2738)
at com.mysql.jdbc.StatementImpl.executeQuery(StatementImpl.java:1617)
KX
Messages postés16752Date d'inscriptionsamedi 31 mai 2008StatutModérateurDernière intervention31 août 2024127
>
cedrickdeco
Messages postés5Date d'inscriptionmercredi 25 avril 2018StatutMembreDernière intervention28 avril 2018 28 avril 2018 à 09:56
Avec quel code tu obtiens cette erreur ? Toujours le même ?
Celui des lignes 4 à 10, avec le
rs = pst.executeQuery(query1);
que je t'ai dit de supprimer ?
C'est normal que tu ais une erreur...
Regarde mon code, j'ai
stmt = connection.prepareStatement(query)
(pas executeQuery !)
Une fois "préparée" on remplace le ? dans la requête avec
stmt.setString(1, searchValue);
et c'est seulement à ce moment que l'on fait un
ResultSet rs = stmt.executeQuery()
...
Donc regarde la documentation sur les PreparedStatement et essayes mon code.
25 avril 2018 à 13:07
Modifié le 25 avril 2018 à 13:45
... 62 more
voici mon code corrige:
25 avril 2018 à 13:56
https://docs.oracle.com/javase/tutorial/jdbc/basics/prepared.html
Tu devrais également considérer les try-with-resources, pour une meilleure gestion des close() et des exceptions. https://docs.oracle.com/javase/tutorial/essential/exceptions/tryResourceClose.html