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

Langage Java Discussion :

[Language]Type d'un objet null


Sujet :

Langage Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 29
    Par défaut [Language]Type d'un objet null
    Bonjour.

    Je me demandais s'il y avait moyen de connaitre le type d'un objet null ?

    Je m'explique.
    Dans le cadre d'un accès à une BDD, je dois utiliser une méthode faite par d'autres qui permet d'initialiser un PreparedStatement à partir d'un tableau de paramêtres. Cette méthode marchait très bien jusqu'à ce que j'envoie un paramêtre null.

    En effet, pour initialiser le PreparedStatement, il est tout à fait possible d'y mettre un paramêtre null, mais il faut préciser le type de ce paramêtre.
    Or, mon objet étant null, je ne peux pas utiliser les méthodes de la classe, et instanceOf ne marche pas non plus.

    Je peux tout à fait caster mon objet, mais ça ne change rien.
    Est ce que l'un de vous a une idée pour résoudre mon problème ?

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

  2. #2
    Membre éprouvé Avatar de jiraiya
    Inscrit en
    Mai 2002
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 100
    Par défaut
    regardes dans la doc de sun http://java.sun.com/j2se/1.5.0/docs/api/ la fonction setNull t'en dira plus

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 29
    Par défaut
    Oui, je sais bien qu'on peut utiliser setNull() pour envoyer un null à une requête, mais il faut lui préciser le type associé à la colonne.
    Or, dans mon cas, je reçois la requete SQL sous forme de chaine d'un côté et les paramêtres sous forme de tableau d'objets de l'autre, ce qui fait que je n'ai pas connaissance du type de la colonne.
    Jusqu'à présent, je me fiais au type de l'objet passé en paramêtre pour faire un setObject() du bon type, mais avec un objet null, je ne peux pas.

  4. #4
    Membre éprouvé Avatar de jiraiya
    Inscrit en
    Mai 2002
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 100
    Par défaut
    euh, il existe un type NULL, essaye ça sinon, n'y a t'il pas moyen de récupérer le type de la colonne?? par des metaData ou autrement??

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 29
    Par défaut
    J'ai essayé avec le type NULL, mais j'ai une erreur. Il me dit que le type ne correspond pas (dans mon cas d'exemple, la colonne est de type Integer).
    J'ai aussi essayé de trouver le type des colonnes avec les méthodes :
    getParameterMetaData : le driver Oracle que j'utilise renvoie un UnsupportedFeatureException
    getMetaData : j'ai un null à la sortie...

  6. #6
    Membre éprouvé Avatar de jiraiya
    Inscrit en
    Mai 2002
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 100
    Par défaut
    ok, mais comme tu sais que c'est de type Integer pourquoi ne le fait tu pas?? il y a un truc qui m'échappe

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 29
    Par défaut
    Là je le sais parce que c'est moi qui fait le test de bout en bout, je sais donc quelle requête j'ai envoyée, mais normalement je suis censé accepter n'importe quelle requête.

  8. #8
    Membre éprouvé Avatar de jiraiya
    Inscrit en
    Mai 2002
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 100
    Par défaut
    et bien si tu n'as pas de moyen de récupérer le type de la colonne concernée, je ne vois pas de solution de sortie désolé

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 29
    Par défaut Contournement
    Bon, j'ai trouvé un moyen de contourner le problème.
    Je n'ai pas réussi à connaitre le type d'un objet null, mais comme ça résouds mon problème et que je n'ai pas plus de temps à y consacrer ...

    Voila ma solution, ça peut peut être servir à quelqu'un.
    Je précise que j'utilise le driver JDBC Oracle. Ca ne marchera probablement pas partout.

    Donc, mon souci était que je ne connaissais pas le type d'une colonne et que j'avais besoin d'y mettre un null. Si je précisais le type NULL, je me faisais jeter parce que ça ne correspondait pas.
    Après plusieurs essais, j'ai remarqué que si je précisais le type VARCHAR, ça passait. Il est donc possible de faire un setNull(i, Types.VARCHAR), et ce pour n'importe quel type. Bizarrement, ça ne lui pose pas de problèmes que la colonne destination soit en réalité un INTEGER, une DATE ou autre chose.
    C'est pas logique, mais vu que ça passe, et ben, c'est très bien comme ça.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 17/11/2005, 09h35
  2. Renvoyer un type structuré dans objet OLE
    Par Bleuarff dans le forum API, COM et SDKs
    Réponses: 6
    Dernier message: 13/05/2005, 20h05
  3. [POO] Comment connaître le type d'un objet
    Par zizou39 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 01/03/2005, 09h46
  4. Formulaire - lien JS - objet Null ou pas objet...
    Par Romalafrite dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 17/10/2004, 14h08
  5. Comment detecter le type d'un objet?
    Par nickylarson dans le forum C++Builder
    Réponses: 3
    Dernier message: 24/06/2003, 15h23

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