Bonjour,
Avançant dans ma compréhension du java et de ses liens avec les bdd, je tombe sur une erreur dont je ne comprends pas l'origine.
Dans le code ci-dessous, j'obtiens une erreur SQLException. Je m'en suis apperçu grâce au "System.out.println("SQLException dans RecBdd");" (ligne 58) que j'ai mis en place.
Je ne comprends pas d'où peut provenir cette erreur car le tuto suivi qui explique l'insertion de données dans une database a été strictement respecté !?!
J'ai lu que les SQLExceptions peuvent provenir d'une mauvaise connection ou d'une erreur dans la requête mais là, la connexion à l'air bonne et la requête aussi (à en juger par les messages que j'obtiens dans la fenêtre de sortie de NetBeans et à en juger par le tuto d'où j'ai recopié la requête ) ....
voici le code :
et voici ce que j'obtiens en fenêtre de sortie de NetBeans :
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
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77 import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; /** * * @author francky */ public class RecBdd { public RecBdd() { // Variables relatives à la connexion à la base de données String url = "jdbc:mysql://localhost:3306/bdd_sdzee"; String utilisateur = "java"; String motDePasse = "SdZ_eE"; Connection connexion = null; //Statement statement = null; ResultSet resultat = null; //chargement du pilote try { Class.forName("com.mysql.jdbc.Driver"); System.out.println("chargement pilote"); } catch (ClassNotFoundException e) { System.out.println("erreur ClassNotFoundException e"); } //Connection à la base de données try { System.out.println("connexion BDD"); connexion = DriverManager.getConnection( url, utilisateur, motDePasse ); } catch (SQLException e) { System.out.println("SQLException erreur"); } //commandes SQL try { //création de l'objet gérant les requêtes Statement statement = connexion.createStatement(); // Exécution d'une requête d'écriture int statut = statement.executeUpdate("INSERT INTO Utilisateur(email, mot_de_passe, nom, date_inscription) VALUES ('new@mails.be', MD5('passpass'), 'Tonton', NOW()"); System.out.println("enregistrement effectué ???? statut : " + statut); } catch (SQLException e) { System.out.println("SQLException dans RecBdd"); } finally { if ( connexion != null ) try { // Fermeture de la connexion System.out.println("fermeture connexion dans RecBdd !?!"); connexion.close(); } catch ( SQLException ignore ) { // Si une erreur survient lors de la fermeture, il suffit de l'ignorer. } } } }
Il faut aussi dire que j'appelle cette RecBdd depuis un autre fichier java dont le code est :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 chargement pilote connexion BDD SQLException dans RecBdd fermeture connexion dans RecBdd !?! enregistrement normalement effectué ....
Voilà, j'espère avoir été clair !?!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 if (commande.equals("Enregistrer")) { RecBdd recBdd = new RecBdd(); System.out.println("enregistrement normalement effectué ...."); }
Partager