IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JDBC Java Discussion :

[DBUtils]Jakarta Commons DBUtils + probleme requete


Sujet :

JDBC Java

  1. #1
    bfb
    bfb est déconnecté
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 44
    Points : 28
    Points
    28
    Par défaut [DBUtils]Jakarta Commons DBUtils + probleme requete
    Bonjour,

    voila j'utilise l'api DBUtils pour faire mes requetes. J'utilise notamment la classe BeanListHandler afin de renvoyer directement une ArrayList de Bean correspondant chacun à un tuple de ma base de données. Dans mon bean j'ai 2 attributs int et 2 de type String. Ma requete est correcte je l'ai verifiee avec sqlplus. Mes champs de type String sont bien remplis par contre ce n'est pas le cas pour mes type int. Lorsque j'utilise un setter pour recuperer ma valeur j'obtiens 0. Est ce que quelqu'un aurait une idee??
    Autre point, j'utilise une base oracle et mes champs correspondant à mes attributs de type int dans mon bean sont des number(25) dans la base oracle. En esperant avoir ete clair.

    Merci par avance

    [Modéré par Didier] : ajout de tag dans le titre - Les règles du forum Java

  2. #2
    Membre expérimenté
    Avatar de zekey
    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 036
    Points : 1 403
    Points
    1 403
    Par défaut Re: Jakarta Commons DBUtils + probleme requete
    Citation Envoyé par bfb
    Lorsque j'utilise un setter pour recuperer ma valeur
    Un setter pour recuperer heu.....
    Donnes nous le bout de code qui ne marche pas, c'est plus que de réfléchir dans le vide.
    Steve Hostettler
    est ton ami(e) et le tag aussi.

  3. #3
    Expert éminent

    Avatar de christopheJ
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 600
    Points : 8 235
    Points
    8 235
    Par défaut
    C'est sans doute un probleme de correspondance de type.
    Dans ces cas, la solution est l'écriture de ton propre Handler.

  4. #4
    bfb
    bfb est déconnecté
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 44
    Points : 28
    Points
    28
    Par défaut
    Oui c'est ce que je croyais un probleme de correspondance de type mais le truc c'est que j'ai essayé avec un champ que j'ai declare comme integer dans ma base de données oracle et en tant que integer dans ma classe Java et la j'ai la meme chose. Ca ne fonctionne qu'avec les String!!

    Sinon voila mon 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
     
    	public List queryDBWorkListBean(String query, Object param, String schema) {
     
    		connectDB(schema);
     
    		QueryRunner qRunner = new QueryRunner();
     
    		QueryLoader qLoad = QueryLoader.instance();
    		Map mapQuery = new HashMap();
    		try {
    			mapQuery = qLoad.load("/resources/properties/queries.properties");
    			System.out.println("map loaded");
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
     
    		List lBeans= new ArrayList();
    		try {
    			lBeans =
    				(List) qRunner.query(
    					conn,
    					(String) mapQuery.get(query),
    					new BeanListHandler(WorkListBean.class));
    		} catch (SQLException e4) {
    			e4.printStackTrace();
    		}
    		System.out.println("requete avec Bean");
    		for (int i = 0; i < lBeans.size(); i++) {
    			WorkListBean wlb  = (WorkListBean) lBeans.get(i);
    			System.out.println("\t"+wlb.getName()+" "+wlb.getId());
    		}
    		DbUtils.closeQuietly(conn);
     
    		return lBeans;
    	}
    voila ma classe WorkListBean ne contient que des modificateurs et accesseurs. Lorsque je fais un wlb.getId j'obtiens 0 pour tpus les tuples.

    A noter que mes noms de champs dans la base sont les memes que mes attributs dans la classe comme dit dans le tutoriel http://christophej.developpez.com/tutoriel/api/dbutils/

  5. #5
    Membre actif
    Inscrit en
    Mai 2004
    Messages
    297
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 297
    Points : 207
    Points
    207
    Par défaut
    Salut,

    Je viens de tester et j'ai le même problème (je n'en avais pas eu besoin auparavant Base oracle).
    Par contre tu peux peut être contourner le problème au niveau de ta requette tu recupères non plus un number dans ton select mais un to_char(number) "libellé" et l'attribut de ton bean tu le met en string. Tu n'auras plus qu'à faire la conversion string -> int en java.

    En tout cas si tu trouves la solution je suis preneur

Discussions similaires

  1. [Commons-DBUtils] Impossible d'utiliser Sysdate
    Par moritan dans le forum JDBC
    Réponses: 3
    Dernier message: 25/08/2006, 13h47
  2. probleme requete update
    Par Amandine62 dans le forum ASP
    Réponses: 12
    Dernier message: 27/01/2005, 11h15
  3. probleme requete
    Par voyageur dans le forum PostgreSQL
    Réponses: 6
    Dernier message: 06/11/2004, 21h43
  4. Réponses: 5
    Dernier message: 28/10/2004, 15h22
  5. Réponses: 3
    Dernier message: 17/05/2004, 17h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo