Bonjour ,
voila j'ai un petit souci depuis quelques heures maintenant, qui me fait venir vers vous. J'ai un petit programme que je doit faire, et qui doit inséré dans ma table des données . Je suis sur de l'accès a la bases de données car sur un Select all pas de souci et le try catch ne m'indique pas de souci a ce niveau la, et ma requête SQL fonctionne sur php my admin quand je la lance manuellement. mais quand je combine les deux,il y a un soucis je catch une erreur sur la requête :/
voici le code :
je rentre donc dans le premier catch celui de (System.out.println("erreur1")
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 public void ajouterJoueur(Joueur joueur){ System.out.println(joueur.getNation()+" "+ joueur.getNom()+" "+ joueur.getPrenom()); String requete = "INSERT INTO joueur(nom, prenom, sexe, nation) VALUES ('"+joueur.getNom()+"','"+joueur.getPrenom()+"','"+joueur.getSexe()+"','"+joueur.getNation()+"')"; System.out.println(""+requete); try (Connection connection = DriverManager.getConnection(url, user, password); PreparedStatement instruction = connection.prepareStatement(requete);) { try (ResultSet resultat = instruction.executeQuery();) { } catch (SQLException e) { e.printStackTrace(); System.out.println("erreur1"); } } catch (SQLException e) { e.printStackTrace(); System.out.println("erreur2"); } }
et les valeurs renvoyé dans l'objet "joueur" sont bonne car j'ai fait un syso sur la variable "requete" pour voir ce quelle me retourne j'ai copier collé le résultat dans php MyAdmin pour exécuter le résultat manuellement et donc j'ai pus en conclure que la requête fonctionne
le retour du catch :
et si je remplace ma requete par un select *... comme j'ai déja fait dans une autre méthode je n'ai pas de message d’erreur :/
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 INSERT INTO joueur(nom, prenom, sexe, nation) VALUES ('Pipo','Sylvie','F','France') Fri Aug 05 15:45:47 CEST 2016 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification. java.sql.SQLException: Can not issue data manipulation statements with executeQuery(). at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:963) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:896) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:885) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:860) at com.mysql.jdbc.StatementImpl.checkForDml(StatementImpl.java:463) at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1926) at RolandGaros.JoueurJDBC.ajouterJoueur(JoueurJDBC.java:72) at RolandGaros.Main.main(Main.java:20) erreur1
donc je ne vois pas d'ou viens le problème et c'est peut être tout bête^^ mais je bug la dessus, des suggestions qui pourrais me faire avancer ?
Partager