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

JPA Java Discussion :

JPA avec plusieurs BDD


Sujet :

JPA Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    226
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 226
    Par défaut JPA avec plusieurs BDD
    bonjour,

    dans le cadre d'un projet je voudrais savoir si il était possible de crée et d'utiliser plusieur base de donnée avec des noms différents mais avec les structure identique .

    exemple simple un client viens me voir pour avoir sa base de donnée client j'aimerais crée via l'interface web de mon site sa db du genre jean-DB ensuite j'ai un autre client qui viens et crée sa dj pierre-db.
    toujours sans avoir toucher au code .

    lorsque mon application se lance pouvoir choisir sur quel db il dois se conecter .


    pouvez vous me dire si c'est possible ? pouvez-vous m'aider pour un projet exemple.

    j'utilise maven avec web-service .

    D'avance Merci

  2. #2
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Par défaut
    Bonjour,

    JPA n'est pas conçue pour ce type d’opération. C'est une api qui n'est pas cénsee connaitre la base de donnée sur laquelle elle doit travailler, notion de fort découplage, car créer une base de donnée à chaud c'est forcément connaître de quel SGBD il s'agit. Ceci dit je pense qu'il y'a un problème de conception dans ton approche. Peut on savoir précisément quel es ton besoin fonctionnel ? Car si ça se trouve en restant dans la même bd suivant une bonne conception du modèle cela pourrait répondre au besoin. Alors ?

  3. #3
    Membre expérimenté Avatar de welcome_59
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2007
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 203
    Par défaut
    Si tu souhaites lister les bases de données sur un serveur, tu peux utiliser JDBC. ça doit être quelque chose comme:
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
        // ...
        String jdbcUrl = "jdbc:postgresql://localhost:5432/postgres";
        Connection connection = DriverManager.getConnection(jdbcUrl, "postgres", "****");
     
        DatabaseMetaData meta = connection.getMetaData();
        ResultSet res = meta.getCatalogs();
     
        // Extraire la liste des bases du resultSet
     
        // ...

    À adapter à ton SGBD et tes besoins.

  4. #4
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Disons que ça va dépendre de ta base de données et de la méthode utilisée pour initialiser tes connexions.
    Si je comprends bien, c'est une notion de "schéma" spécifique par client que tu veux gérer.
    Pour ça, tu as l'url de la base de données qui permet de spécifier sur quel schema tu travailles.
    Avec MySQL, tu aurais quelque chose comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    jdbc:mysql:///le_nom_schema
    Ensuite, il suffit de ne pas spécifier l'attribut "schema" dans tes entities comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    @Entity
    @Table(name = "DECIDEUR", schema = "PIDDLIB")
    public class Decideur implements java.io.Serializable
    {
    ...
    }
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    226
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 226
    Par défaut
    je vais essayer de mieu m'exprimer :

    l'administrateur le patron de ma société cree un evenement pour un client :

    il a une interface html /angular qui se conecte au web service /jpa

    il rentre le nom du client : ex client1
    choisi les autres parametres et clique sur envoyer

    ce que je veux faire en black-end :

    dans ma table parametre :

    un insert avec nom de la db / url /login /password .....
    exemple db_Client1 / www.siteduparton.com/Client1 root root .....

    jusque la je sais tout faire

    ensuite j'aimerais avec jpa coté admin qu'il me fasse un peu l'equivalent du code suivant
    crée db db_client1
    crée table client (les champs )
    crée table article (les champs )
    etc

    voila pour la partie admin

    partie client le client rentrer www.siteduparton.com/Client1
    il utilise le site web avec les fonctionalité pour donnée une idée :

    importation de son fichier exel avec sa liste de client pour les inviter a l'évenement
    modification de sa propre base de donnée.
    création de ses formulaire d'inscription pour l'evenement etc
    ce qui peu être volumineux trop volumineux si je stoque tout ses choses la sur la même db apres plusieur année

    mon souci ici est de dire a l'entity manager ecouter tout le programe pour l'url client1 tu dois te conecter à la db client 1

  6. #6
    Membre Expert
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 963
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 963

Discussions similaires

  1. [SQL-Server] connexion a plusieurs bdd en méme temps avec sql server
    Par mariem deve dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 05/06/2013, 10h04
  2. [JPA-TOPLINK] Mauvaise synchro avec la bdd
    Par mickael.guilbert dans le forum Glassfish et Payara
    Réponses: 0
    Dernier message: 30/07/2009, 11h55
  3. [phpMyAdmin] Comment importer une colonne excel dans une BDD avec plusieurs champs ?
    Par guillaume7684 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 30/06/2009, 14h57
  4. ProgressBar avec plusieurs procédures
    Par elifqaoui dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 08/09/2002, 18h03
  5. Shortcut avec plusieurs touches
    Par scorpiwolf dans le forum C++Builder
    Réponses: 4
    Dernier message: 06/07/2002, 15h57

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