Précédent   Forum du club des développeurs et IT Pro > Java > Général Java > JDBC
JDBC Forum d'entraide sur l'API JDBC (Java Database Connectivity) et l'accès aux bases de données. Avant de poster -> FAQ JDBC
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 31/12/2012, 15h26   #1
hadesthanos
Candidat au titre de Membre du Club
 
Homme Samuel Denys LONGO NDONG
Développeur informatique
Inscription : novembre 2008
Messages : 26
Détails du profil
Informations personnelles :
Nom : Homme Samuel Denys LONGO NDONG
Âge : 23
Localisation : Cameroun

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2008
Messages : 26
Points : 14
Points : 14
Par défaut 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.
hadesthanos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/01/2013, 09h24   #2
hadesthanos
Candidat au titre de Membre du Club
 
Homme Samuel Denys LONGO NDONG
Développeur informatique
Inscription : novembre 2008
Messages : 26
Détails du profil
Informations personnelles :
Nom : Homme Samuel Denys LONGO NDONG
Âge : 23
Localisation : Cameroun

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2008
Messages : 26
Points : 14
Points : 14
J'ai trouvé la solution. le problème venait en fait de ma classe controlle qui communique avec la base de donnée. Lorsque je construit un client ici:
Code :
this.client=new Client(ctrl.bd.R.getString("nom"), ctrl.bd.R.getString("prenom"), controle);
le resultset était rechargé avec de nouveaux résultats d'une autre table. J'ai passé la soirée à gérer cela. Bonne année à tous. Beaucoup de projets et de bonheur.
hadesthanos est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 05h17.


 
 
 
 
Partenaires

Hébergement Web