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 :
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.
                }
        }    
 
    }
}
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
chargement pilote
connexion BDD
SQLException dans RecBdd
fermeture connexion dans RecBdd !?!
enregistrement normalement effectué ....
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
        if (commande.equals("Enregistrer"))
        {
            RecBdd recBdd = new RecBdd();
            System.out.println("enregistrement normalement effectué ....");
        }
Voilà, j'espère avoir été clair !?!