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 :

BD dynamique et sessionFactory


Sujet :

Hibernate Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Inscrit en
    Novembre 2009
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 2
    Par défaut BD dynamique et sessionFactory
    Je débute un projet web avec Hibernate 3.2. J’utilise plusieurs BD générées dynamiquement avec le même schema. En pratique, si j’ai un nouveau client, je créé une nouvelle BD selon un shéma identique.

    Donc, lorsqu’une requête appel la servlet, Hibernate doit charger toujours la même configuration. La seul exception est que la propriété hibernate.connection.url doit être associé à la BD du client.

    J’aime bien le principe du HibernateUtil qui permet d’avoir la même sessionfactory pour tous les threads.

    Cependant, est-il possible d’obtenir une sessionfactory avec des BD dynamique tout en utilisant une classe HibernateUtil ?

    Dans le cas ou c’est impossible comment peut-on gérer cette situation sans instancier une nouvelle sessionfactory à chaque requête HTTP?

    Merci à l'avance !

  2. #2
    Candidat au Club
    Inscrit en
    Novembre 2009
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 2
    Par défaut
    Je pense avoir trouvé une solution au problème en visitant l'adresse :
    http://www.java-forums.org/database/...databases.html

    Voici le HibernateUtil :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    import java.util.HashMap;
     
    import org.hibernate.SessionFactory;
    import org.hibernate.cfg.Configuration;
     
    public class HibernateUtil {
     
      private static HashMap<String, SessionFactory> sessionFactoryMap = new HashMap<String, SessionFactory>();
     
      public static SessionFactory getSessionFactory(String key) {
    	  if (!sessionFactoryMap.containsKey(key)){
    		  try {
    			  SessionFactory sessionFactory = new Configuration()
    				.configure()
      				.setProperty("hibernate.connection.url", "jdbc:mysql://localhost/"+key)
      				.setProperty("hibernate.connection.username", "root")
      				.buildSessionFactory();
     
    			  sessionFactoryMap.put(key, sessionFactory);
     
    		  } catch (Throwable ex) {
    		      // Make sure you log the exception, as it might be swallowed
    		      System.err.println("Initial SessionFactory creation failed." + ex);
    		      throw new ExceptionInInitializerError(ex);
    		    }
     
    		}
     
    	  return sessionFactoryMap.get(key);
      }
     
    }

  3. #3
    Futur Membre du Club
    Inscrit en
    Août 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 4
    Par défaut
    Bonjour à Tous

    je travaille sur deux applications, la première permet à l'utilisateur de se connecter, via un login et un mot de passe, pour se retrouver dans la deuxième application.
    le truc est que je dois récupérer les paramètres de connexion tel que : URL de la base de donnée, qui dépend du login et de mot de passe saisie dans l'interface de la 1ère application, pour que par la suite, la 2ème application se connecte à sa base de donnée appropriée.

    la récupération de ces paramètres, qui se retrouvent dans la base de donnée de la 1ère application est faite, et j'ai pu dynamiser les propriétés de configuration.
    mais le problème est comment ma 2ème application peut prendre en considération les nouveaux paramètres de connexion au moment de son exécution .

    j'utilise HibernateUtil pour configurer les paramètres et créer la session (j'utilise le même code que celui décrit par guy325), et j'utilise la classe HibernateSessionFilter pour assurer la transaction des requêtes.

    Merci d'avance

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

Discussions similaires

  1. Creation de fiche dynamique
    Par Mouss26 dans le forum C++Builder
    Réponses: 7
    Dernier message: 24/07/2002, 07h56
  2. comment creer un alias dynamique avec BDE et ODBC
    Par david33 dans le forum C++Builder
    Réponses: 2
    Dernier message: 12/07/2002, 11h50
  3. Création dynamique de TImages
    Par Dric dans le forum C++Builder
    Réponses: 10
    Dernier message: 08/07/2002, 12h36
  4. Réponses: 4
    Dernier message: 13/05/2002, 16h43
  5. repertoire temp dynamique
    Par killpilot dans le forum C
    Réponses: 2
    Dernier message: 26/04/2002, 16h19

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