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 :

[JDBC]migration des donnees de pls tables vers un fichier


Sujet :

JDBC Java

  1. #1
    Rédacteur
    Avatar de longbeach
    Profil pro
    Architecte de système d’information
    Inscrit en
    Avril 2003
    Messages
    943
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Avril 2003
    Messages : 943
    Points : 2 370
    Points
    2 370
    Par défaut [JDBC]migration des donnees de pls tables vers un fichier
    Bonjour,
    je dois recuperer les donnees de plusieurs tables Oracle et les inserer dans un fichier.
    J'aurais un enregistrement par ligne, dans un format precis et sur un nombre de caracteres precis. Si y en a pas assez, je padde avec des blancs.

    Exemple d'une ligne:
    colonne1 colonne2colonne3 colonne4

    Bref, je recherche des idees sur la façon la plus sympa de procéder, en Java.

    Merci à ceux qui prendront le temps de me repondre.



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

  2. #2
    Membre à l'essai
    Inscrit en
    Juillet 2004
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 23
    Points : 20
    Points
    20
    Par défaut
    Utiliser
    -driver ociX X=version d'oracle mais attention tu auras besoin d'un client oracle
    -driver thin qui n'a pas besoin de client mais la connection est différente (hostname & cid)

    Dans le code: tu
    - register le driver auprès du driver manager
    - openconnection
    - balance la requete, récupére le résultat dans un resultset d'un statement de la connection
    - tu crées un filewriter
    - tu boucles sur tous les records de ton resultset en créant une fonction de padding à laquelle tu passes en param le field du record a écrire et la fixedlength qu'il doit atteindre et tu écris la String retournée à l'aide du filewriter + "/n" à la fin du record
    -close filewriter close resultset, statement et connection

    Voila c pas plus compliqué que ca.

    PS: si tu fais des modifs sur la base de données, n'oublies pas que quand tu close la connection, elle commit automatiquement!!!!

  3. #3
    Membre habitué
    Inscrit en
    Juin 2004
    Messages
    165
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 165
    Points : 136
    Points
    136
    Par défaut
    Plutôt que d'écrire dans ton fichier ligne par ligne écrit bloc par bloc ça ira plus vite. Et n'oublie pas l'utilisation des StringBuffer pour constituer tes lignes.

  4. #4
    Membre à l'essai
    Inscrit en
    Juillet 2004
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 23
    Points : 20
    Points
    20
    Par défaut
    Ah oui c vrai... le stringbuffer... comment ai je pu oublier de parler de ça?

  5. #5
    Rédacteur
    Avatar de longbeach
    Profil pro
    Architecte de système d’information
    Inscrit en
    Avril 2003
    Messages
    943
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Avril 2003
    Messages : 943
    Points : 2 370
    Points
    2 370
    Par défaut
    Merci pour vos idées, c'est sympa d'avoir répondu.
    Bon en gros c'est ce que je compte faire, passer par des stringbuffers, des FileWriters, stocker ma requete dans un resultset etc ...

    Mais je me demandais s'il y avait pas un moyen plus elegant de le faire
    avec les frameworks et apis d'aujourd'hui.

    Genre hibernate, mais j'ai l'impression que c'est utiliser un canon pour abattre un arbre, pas forcement la meilleure methode et peut-être exagéré par rapport à mon besoin.

    Je suis preneur de toutes autres idees, suggestions en tout cas

  6. #6
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 413
    Points : 1 993
    Points
    1 993
    Par défaut
    La façon la plus sympa de résoudre ce problème est d'utiliser une approche OO.

    Si tu as du temps pour une solution 00, essaie de créer des classes avec des responsabilités bien séparées, des interfaces, un petit package qui permet d'écire des fichiers textes en différents formats (champ à longueur fixe, champ séparé par de délimiteurs).

    Que tu puisses réutiliser tes classes pour différentes buts.

    Voilà...
    Bien le bonjour chez vous
    Jowo

  7. #7
    Expert éminent

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Points : 7 641
    Points
    7 641
    Par défaut
    FileWriter + StringBuffer = BufferedWriter

    Avec les BufferedWriter, tu peux écrire directement dans ton writer, sans te soucier d'avoir à faire des String ou des StringBuffer comme variables intermédiaires et inutiles.
    Tout passe par un cache, donc pas de soucis de performance....

    Et sinon, la méthode la plus simple est de faire une solution brutale. A priori, il n'y a aucun framework te permettant de faire ça, mais avec un peu d'objet, c'est fait en deux temps trois mouvements....

Discussions similaires

  1. Réponses: 6
    Dernier message: 16/04/2014, 14h28
  2. [JSP]Exporter les données d'une table vers un CSV
    Par genuine dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 25/10/2006, 10h58
  3. Réponses: 2
    Dernier message: 17/10/2006, 11h25
  4. Réponses: 3
    Dernier message: 05/10/2005, 17h19
  5. [JDBC]Nom des colonnes d'une table
    Par Guybrush dans le forum JDBC
    Réponses: 6
    Dernier message: 08/09/2004, 18h28

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