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 :

Export et Import d'une base de données


Sujet :

Langage Java

  1. #1
    Nouveau membre du Club
    Étudiant
    Inscrit en
    Juillet 2006
    Messages
    42
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2006
    Messages : 42
    Points : 35
    Points
    35
    Par défaut Export et Import d'une base de données
    Bonjour à tous

    Je développe actuellement une application qui permet d'exporter des tuples à partir d'une base de données, et d'effectuer l'opération inverse.

    J'ai procédé comme suit :

    Pour chaque table de ma base j'ai crée une classe JAVA qui contient tous les champs de la table comme attribut de type String.

    Pour exporter : j'instancier tous les objet dont j'ai besoin par les tuples de la base et je crée un Fichier XML qui représente ces objets.

    Par exemple si j'ai un objet de la Classe personne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public class Personne {
        String id;
        String nom;
        String prenom;
        /** Constructeurs ...*/    
    }
    je l'enregistre dans un fichier XML sous cette forme par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <Personne >
        <id>"1"</id>
        <nom>"moi"</nom>
        <prenom>"elle"</prenom>
    </Personne>
    et Lors de l'importation dans le même schéma il n'y a pas de gros problèmes car les clés primaires de mes tuples je les retrouve donc quand j’insère il n’y pas de soucis

    Mais quand j'importe vers un autre schéma je rencontre de gros problèmes car les clé sont pas les mêmes, et je doit tout changé car dans mes tables j'ai une hiérarchie (une table répertoire qui contient un id parent ).
    Il faut que je me souvienne de toutes les correspondances entre les anciennes clés et les nouvelles.
    Donc j'aimerai juste savoir si je me suis trempé dans la solution que j'ai choisi depuis le début ou bien y'a t il une solution ? enfin bref je suis perdu

    Merci de votre aide.

  2. #2
    Membre expérimenté
    Avatar de fabszn
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2002
    Messages
    974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2002
    Messages : 974
    Points : 1 638
    Points
    1 638
    Par défaut
    Hello,

    La solution que tu pourrais envisager c'est de faire des liens hiérachiques indépendemment des ids de ta base.
    Pour cela, il faurdrait que tu gères dans ton graphe d'objet (et pas conséquent dans ton fichier xml) le lien entre tes objets.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    ublic class Personne {
        String id;
        String nom;
        String prenom;
       Personne monFils;
      /** Constructeurs ...*/    
    }
    Au moment de l'insertion, pour les tables ayant cette relation particulière, tu récupères le plus grand id de la table et tu insères avec le suivant.

    L'insertion devra se faire par le bas du graphe et remonter jusqu'au plus grand parent.

    Sinon pourquoi tu n'utilises pas un framework de persistant pourvant gérer ce genre de situation?

    C'est une idée..
    @+

    Fabszn
    Twitter : @fsznajderman

    N'oubliez pas le bouton
    Comment bien poser ses questions sur le forum


  3. #3
    Nouveau membre du Club
    Étudiant
    Inscrit en
    Juillet 2006
    Messages
    42
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2006
    Messages : 42
    Points : 35
    Points
    35
    Par défaut
    Citation Envoyé par fabszn

    Sinon pourquoi tu n'utilises pas un framework de persistant pourvant gérer ce genre de situation?

    C'est une idée..
    Oui j'aurais pu faire ça avec Hibernate ou autre mais quand j'avais commencé mon projet (le chef du projet m'a dit de ne pas y toucher).

    Mais j'ai trouvé une solution: je vais donner les détails, on ne sait jamais si ça peut intéresser quelqu'un.

    Je crée une classe principale, cette classe contient autant de vecteur que de classes que j'ai exporté.

    Par exemple : je prend un schéma d'une base simple.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     zone_de_contenu(id_zone, nom, description, id_repertoire_racine).
    repertoire (id_repertoire, nom,description, id_parent,id_zone)
    fichier (id, nom,id_zone,id_repertoire).
    Donc dans ma classe principale, je me débrouiller pour collectionner tous mes objets (c'est a dire remplir le vecteur de zones de contenu, le vecteur de répertoires et le vecteur de fichiers).

    ENSUITE je parcourt chacun des ces vecteurs et pour chaque objet, je fait une requête de ce type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select maSequence.nextval from dual
    pour réserver une clé dans la base de données

    Supposant que je suis sur une zone de contenu d'id = 3, et la nouvelle clé obtenue est 19, donc je parcourt tout les répertoires et tous les fichiers et à chaque fois que je trouve leurs id_zone est égale à 3 je le change en 19.

    Une fois cette opération terminée j'effectue mes insertions dans la base et le tour est joué .

    Pour plus de détails n'hésitez pas.
    hbellahc

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

Discussions similaires

  1. Export d'information d'une base de donnée sql au format edi
    Par Linton.black dans le forum Autres SGBD
    Réponses: 2
    Dernier message: 23/11/2009, 18h14
  2. probleme d import dans une base de données
    Par calimero642 dans le forum SGBD
    Réponses: 12
    Dernier message: 05/07/2006, 14h19
  3. importation d'une base de donnée
    Par zidenne dans le forum Oracle
    Réponses: 3
    Dernier message: 18/01/2006, 23h18
  4. Importation d'une base de donnée sql server vers oracle
    Par delphy456 dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 17/01/2006, 14h44
  5. [Strategie][Java][XML] Import dans une base de données
    Par nad dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 23/09/2002, 11h12

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