Bonjour,
je travaille sur mon premier projet en java et j utilise une base de données mysql. J'ai une classe Alerte l'un des constructeurs est le suivant:
Le contrôleur ici s'occupe entre autre d'interagir avec la base de données.
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 public Alerte(int id,Controlleur controle) { this.setId(id); ctrl=controle; String Req="Select * from alerte a ,personne p where a.personne=p.id and a.id= "+ "'"+id+"'"; //code enregistrement dans base données try { if(ctrl.bd.ExecuteReq(Req)) { if(ctrl.bd.R.first()) { this.client=new Client(ctrl.bd.R.getString("nom"), ctrl.bd.R.getString("prenom"), controle); this.dateAlerte=ctrl.bd.R.getDate("datealerte"); this.Texte=ctrl.bd.R.getString("texte"); this.voie=ctrl.bd.R.getInt("voie"); } else { ctrl.setMessage(new Error("Cette Alerte n'existe pas dans le système","BAD",new Date())); } } else { ctrl.setMessage(ctrl.bd.GetErrr()); } } catch (SQLException e) { // TODO Auto-generated catch block ctrl.setMessage(new Error(e.getMessage(),e.getClass(),new Date(),e.getStackTrace())); } }
L'instruction suivante pose problème
elle crée une exception de type class java.sql.SQLException avec le message suivant: Column date not found.
Code : Sélectionner tout - Visualiser dans une fenêtre à part this.dateAlerte=ctrl.bd.R.getDate("datealerte");
Voici le schémas de la table Alerte:
J'ai essayé de modifier le nom de la colonne, le type. De recréer la table. J'ai également regardé le contenu des column name du ResultSetMetaData et il existe bel et bien cette colonne dans les résultats de la requette.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 CREATE TABLE IF NOT EXISTS `alerte` ( `Id` int(11) NOT NULL AUTO_INCREMENT, `datealerte` date, `texte` varchar(100) NOT NULL, `voie` int(11) NOT NULL, `personne` int(11) NOT NULL, PRIMARY KEY (`Id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
Le pire c'est que par la suite je me suis rendu compte du fait que le même problème se posait avec tous les champs de type date ou datetime de la base de donnée.
J'ai aussi changé de méthode pour utiliser GetString mais j'ai eu la même erreur.
Je suis connecté pour des compléments d'information et continu de chercher parralèlement.
Merci de votre attention à tous.
Partager