Problème de récupération des valeurs des colonnes de type date
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:
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
| 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()));
}
} |
Le contrôleur ici s'occupe entre autre d'interagir avec la base de données.
L'instruction suivante pose problème
Code:
this.dateAlerte=ctrl.bd.R.getDate("datealerte");
elle crée une exception de type class java.sql.SQLException avec le message suivant: Column date not found.
Voici le schémas de la table Alerte:
Code:
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 ; |
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.
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.