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 :

java Sql Types


Sujet :

JDBC Java

  1. #1
    Membre éclairé Avatar de Empty_body
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    681
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 681
    Par défaut java Sql Types
    Salut,
    J'utilise depuis peu une option des prepared statement mais je n'en connais pas encore toutes les subtilités.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    preparedStatement.setObject(i,(String)contenu.get(i),TYPES.TYPE_SQL );
    Le TYPES.TYPE_SQL permet de formatter le champs de manière à correspondre au mieux avec la base de données. Ce que j'aimerais arriver à faire, serait d'arriver à utiliser se paramètre dans l'exemple que j'utilise ici. Je voudrais pouvoir faire un preparedStatement d'une requète dont je ne connais pas le nombre de champs ni la nature de ces derniers au début. Ce que je n'arrive pas à faire c'est à rendre le TYPES.*** dynamique.
    Que puis-je faire pour résoudre ce problème?
    Merci....

  2. #2
    Membre émérite
    Profil pro
    Architecte technique
    Inscrit en
    Mars 2002
    Messages
    966
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mars 2002
    Messages : 966
    Par défaut
    Je ne pense pas que tu puisses faire ça comme ça, moi j'utilisais le ConnectionMetaData.

  3. #3
    Membre Expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Par défaut
    Il faudrait que tu lises les données de ta table avant :

    sous oracle =>
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    select
        atc.COLUMN_NAME,
        atc.DATA_TYPE,
        atc.DATA_LENGTH,
        atc.DATA_PRECISION,
        atc.DATA_SCALE,
        atc.NULLABLE
    from ALL_TAB_COLUMNS atc
    where atc.TABLE_NAME = 'nomdelatable'
    and OWNER='loginconnection'
    ORDER BY atc.COLUMN_ID

    Ca te permet de tout savoir sur les colonnes d'une table.

  4. #4
    Membre éclairé Avatar de Empty_body
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    681
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 681
    Par défaut
    Salut et merci mais avec ceci en java, j'ai déjà tout ce que je demande comme informations concernant ma base de données. C'est pouvoir faire le preparedStatement en fonction de ce que je récupère qui m'est impossible...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    	public LinkedHashMap catchField(Connection conn) throws SQLException{
     
    			LinkedHashMap treeChamps = new LinkedHashMap();
    			DatabaseMetaData dbMD = conn.getMetaData();
    			ResultSet resultat = dbMD.getColumns("public", "", firstTable, null);
    			while (resultat.next()) {
    				String column = resultat.getString("COLUMN_NAME");
    				String typeName = resultat.getString("TYPE_NAME");
    				//System.out.println("colonne "+column+" type "+typeName);
    				treeChamps.put(column,typeName);
    			}
     
    		return treeChamps;
    	}

  5. #5
    Membre Expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Par défaut
    Bah ça doit marcher ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pstmt.setObject(index++, uneStringExemple, Types.VARCHAR)
    Et si tu veux pouvoir récupérer dynamiquement Types.VARCHAR, tu n'as qu'à faire une Enum ou une HashMap associative entre ta String "String typeName = resultat.getString("TYPE_NAME");" et le java.sql.Types correspondant.

  6. #6
    Membre éclairé Avatar de Empty_body
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    681
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 681
    Par défaut
    Effectivement, merci...

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

Discussions similaires

  1. Comment manipuler des instance de type Date java.sql
    Par mehdi_scofield dans le forum Langage
    Réponses: 3
    Dernier message: 29/10/2008, 16h15
  2. java et type Date sql server
    Par fadex dans le forum JDBC
    Réponses: 1
    Dernier message: 07/05/2006, 16h54
  3. Variable globale - PL/SQL - %TYPE
    Par ogre dans le forum PL/SQL
    Réponses: 25
    Dernier message: 20/10/2004, 13h47
  4. [java.sql.Date] format compatible tout sgbd ?
    Par djskyz dans le forum JDBC
    Réponses: 8
    Dernier message: 15/09/2004, 11h28
  5. [JDBC] java.sql.SQLException: Closed Statement
    Par cmoulin dans le forum JDBC
    Réponses: 4
    Dernier message: 03/09/2004, 17h22

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