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 :

Récupèrer les types java correspondant au type SQL


Sujet :

JDBC Java

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Récupèrer les types java correspondant au type SQL
    Bonjour,

    Je souhaiterai récupérer les types Java des différentes colonnes d'une table de ma BD.

    Pour l'instant, j'ai le code suivant :

    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
     
    DatabaseMetaData dmd = conn.getMetaData();
     
    		ResultSet tables = dmd.getColumns(conn.getCatalog(),null,"VERSION",null);
     
    		ResultSetMetaData metadata = tables.getMetaData();
     
    		while(tables.next()) {
    			String nomColonne = "COLUMN_NAME = " + tables.getString("COLUMN_NAME");
    			String typeColonne = "TYPE_NAME = " + tables.getString("TYPE_NAME");
     
    			System.out.println(nomColonne);
    			System.out.println(typeColonne);
    			System.out.println("-------------------------------");	
    		}
    En résultat j'obtient quelque chose de ce genre :
    COLUMN_NAME = R_VERSION
    TYPE_NAME = NUMBER
    Le problème est que je n'arrive pas à récupèrer les type java correspondant. Je sais qu'on peut y arriver en passant par une requete du style 'Select * from ...', mais je trouve ça pas très propre, et j'ai des tables de plusieurs millions d'enregistrement, dc tres couteux.

    Merci d'avance !!!

  2. #2
    in
    in est déconnecté
    Membre expérimenté Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Points : 1 718
    Points
    1 718
    Par défaut
    et getColumnClassName ça ne te convient pas ? Je viens de trouver ça dans un truc qu'ils appellent javadoc ... je me demande bien à quoi ça peut servir ...
    "If email had been around before the telephone was invented, people would have said, 'Hey, forget email! With this new telephone invention I can actually talk to people!"

    Besoin d'une nouvelle méthode pour développer ? -> http://www.la-rache.com/

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Merci pour la réponse...

    Mais j'ai déjà essayé cette solution. Elle marche bien quand on passe par une requête "select * from table"...mais bizaremment pas quand on utilise la méthode getColumns...

  4. #4
    in
    in est déconnecté
    Membre expérimenté Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Points : 1 718
    Points
    1 718
    Par défaut
    OK ... autant pour moi ...

    si ce n'est pas indiscret, pourquoi veux tu faire ça ?

    si tu ne veux pas utiliser de SELECT la seule solution que je vois c'est de te créer une une table de correspondance que tu devras malheureusement remplir toi même et ensuite t'en servir pour récupérer le type Java correspondant au type SQL trouvé ...
    "If email had been around before the telephone was invented, people would have said, 'Hey, forget email! With this new telephone invention I can actually talk to people!"

    Besoin d'une nouvelle méthode pour développer ? -> http://www.la-rache.com/

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    j'ai besoin de cela pour pouvoir exporter les données d'une application dans un fichier CSV. Dans l'entête de ce fichier doit être spécifié les types java des différents attributs des données.

    La personne qui avait développé ça avait fait un rowcount sur un select. Le problème, c'est que l'application doit être migré sous postgres (tout en restant opérationnel sous Oracle).

    Pour ta solution, merci...j'avais déjà pensé faire une map...mais bon j'aimerai un truc plus propre...si ça existe (et je pense que oui )...

    en tout cas merci !

  6. #6
    in
    in est déconnecté
    Membre expérimenté Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Points : 1 718
    Points
    1 718
    Par défaut
    je crois malheureusement qu'il n'y a pas de solution plus propre ...

    La map ce n'est pas si crade, mais à mon avis avec le select c'est le plus simple. Après il faut trouver le select qui va s'exécuter le plus rapidement et tourner sur les 2 bases (enfin autant viser plus que 2) ...
    "If email had been around before the telephone was invented, people would have said, 'Hey, forget email! With this new telephone invention I can actually talk to people!"

    Besoin d'une nouvelle méthode pour développer ? -> http://www.la-rache.com/

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Bon bein finalement on a utilisé le select * from table (tout simple, sans limit, rowcount ou autre...)

    Je crois également que ce n'est pas possible également.

    Après du côté de JDBC, ils ont peut être optimisé la chose car que ce soit sur une table de 10 éléments ou de 3 millions d'éléments, ca met autant de temps et le résultat est instantané.

    Un grand merci qd même !!!

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 12/01/2012, 08h46
  2. récupérer les fichier java d'un projet netbeans
    Par cotede2 dans le forum NetBeans
    Réponses: 2
    Dernier message: 10/04/2009, 09h54
  3. Récupérer les « choix » d’une colonne de type choix.
    Par souldav dans le forum SharePoint
    Réponses: 5
    Dernier message: 28/03/2008, 18h59
  4. Réponses: 5
    Dernier message: 13/03/2008, 10h03
  5. Récupérer les identifiants de la DB avec SQL.
    Par Cygnus Saint dans le forum Langage SQL
    Réponses: 4
    Dernier message: 02/08/2005, 07h15

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