SQLException erreur incompréhensible !?! pour moi
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:
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:
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:
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 !?!