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

Hibernate Java Discussion :

Exporter une table oracle hibernate dans une autre


Sujet :

Hibernate Java

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 116
    Points : 93
    Points
    93
    Par défaut Exporter une table oracle hibernate dans une autre
    Bonjour,

    Je travail actuellement sur un projet java/maven.
    Pour les test unitaires, je dois mettre la base de donnée dans un état particulier.
    Cet état dépend d'une deuxième table.

    Je cherche donc le moyen d'exporter une table de la Base1 vers la Base2.
    Je tourne en rond sans y arriver.

    je cherche donc un moyen direct pour exporter/importer, ou alors un moyen d'exporter la table de la Base1 dans un script .sql, afin de pouvoir l’exécuter et remplir la Base2. Mais rien n’aboutis..

    Si vous avez de meilleurs propositions, je suis aussi preneur.

    Merci d'avance!

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    394
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 394
    Points : 639
    Points
    639
    Par défaut
    Bonjour,

    Des tests unitaires sur une base de données Oracle ? C'est original

    Tu veux recopier des données d'un base à une autre, c'est plus du tout des tests unitaires, c'est des tests d'intégration. Je te conseil de séparer les tests unitaires (rapides, répétables, indépendants les uns des autres, testent le code métier) des tests bout en bout (longs, fragiles, lourds à maintenir, testent l'assemblage).

    Pour faire ce que tu veux tu pourrais te tourner vers DBUnit qui te permet d'exporter et d'importer des données dans une base de données.

    Romain.

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 116
    Points : 93
    Points
    93
    Par défaut
    Oui effectivement je fais ça pour la partie test d'intégration (et même intégration d'IHM si tu veux tout savoir ).

    J'ai découvert DBUnit hier, j'ai pas encore trouvé comment ré-injecter la table exporté, mais surtout mon entreprise utilise Maven, et n'a pas installer DBUnit sur le réseau.

    De fait je ne suis pas censé l'utiliser. Je cherche donc un moyen en java ou batch de transformer ma table distance en un script sql pour mettre a jour la deuxième table.

    Utilisant SQL Developer, il y a un outils tout fait pour ça, mais je sais pas comment l'automatiser...

  4. #4
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    Euuh installer dbunit sur le réseau? pourquoi faire?

    DBUnit, c'est un outil qui permet justement de faire ce que tu sembles chercher à faire: mettre une DB dans un état connu. C'est facile à intégrer dans un test JUnit par exemple. Dans le @Before/@BeforeClass, tu invoques les API DBUnit pour faire de l'import de data (au format DBUnit) dans la base cible. En parallèle, tu as des API pour te connecter à une (autre) db existante et exporter les data qu'elle contient.

    C'est définitivement the way to go
    "Le plug gros problème des citations trouvées sur internet, c'est qu'on ne peut jamais garantir leur authenticité"

    Confucius, 448 av. J-C

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    394
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 394
    Points : 639
    Points
    639
    Par défaut
    Bonjour,

    Si ton entreprise t'interdit d'utiliser un outil tu leur demandes quel outil elle préconise à la place. C'est trop simple d'interdire des outils sans fournir une solution alternative...

    DBUnit est clairement fait pour faire ce que tu veux.

    Citation Envoyé par Pill_S Voir le message
    Euuh installer dbunit sur le réseau? pourquoi faire?
    Je pense qu'il parle d'un repository Maven interne à l'entreprise sur lequel il récupère les artefacts.

    Romain.

  6. #6
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Sinon, vu que t'es en oracle, tu as aussi à ta disposition:

    les outils imp / exp d'oracle (qu'il faut installer)
    data pump (pareil)
    et je n'arrive plus à mettre la main dessus, mais j'avais trouvé un procédure stockée en pl/sql qui fait exactement le même travail que l'outil export de SQL developper


    edit: pour avoir le schema prêt à être recréé:

    select dbms_metadata.get_ddl('OBJECT_TYPE','OBJECT_NAME','OBJECT_OWNER')
    from dual;


    pour les données, faire un select sur une connection et des insert avec un prepared statement dans l'autre me semble approprié

Discussions similaires

  1. Réponses: 1
    Dernier message: 01/05/2011, 20h36
  2. Réponses: 5
    Dernier message: 18/03/2009, 19h31
  3. Recherche d'une valeur présent dans une table mais pas dans une autre
    Par bossLINDROS dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 19/06/2008, 15h12
  4. Ce qui est dans une table mais pas dans l'autre !
    Par youyoule dans le forum Requêtes
    Réponses: 4
    Dernier message: 30/12/2007, 12h57
  5. insertion dans une table puis update dans une autre table
    Par uptoditime dans le forum VBA Access
    Réponses: 5
    Dernier message: 10/10/2007, 18h08

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