Salut ,
je suis débutant en hibernate et j'ai un petit pb que j'ai as pu résoudre.en effet je travaille sur une application web qui utilise plusieurs base de données identiques(chaque client a sa propre base).
dans ma sessionFactory je parametre moi même la configuration (je n'utilise pas de fichier de configuration) en utilisant ce code :
dans la phase d'identification le client doit entrer son login, mot de passe et le nom de l'agence(qui est le nom de sa BD)
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
34
35
36
37
38
39 public class HibernateSessionFactory { private static final ThreadLocal<Session> threadLocal = new ThreadLocal<Session>(); private static Configuration configuration = new Configuration(); private static org.hibernate.SessionFactory sessionFactory; private static String url="gabirich"; static { try { BuildConfiguration(url); sessionFactory = configuration.buildSessionFactory(); } catch (Exception e) { System.err.println("%%%% Error Creating SessionFactory %%%%"); e.printStackTrace(); } } public static String getUrl() { return url; } public static void setUrl(String url) { HibernateSessionFactory.url = url; } public static void BuildConfiguration(String url) throws HibernateException { //Fichiers hbm de la base de données configuration.addResource("hibernateHBM/TypeBiens.hbm.xml"); ..... ..... .... //propriétes da la connexion configuration.setProperty("hibernate.dialect", "org.hibernate.dialect.MySQLDialect"); configuration.setProperty("hibernate.connection.driver_class", "com.mysql.jdbc.Driver"); configuration.setProperty("hibernate.connection.url", "jdbc:mysql://localhost:3306/"+url); configuration.setProperty("hibernate.connection.username", "root"); configuration.setProperty("hibernate.connection.password", "root"); }
voici un extrait du code de login :
mon probléme est que le variable url change de valeur avec la méthode setUrl() mais dans la méthode buildconfiguration() il ne change pas de valeur ( il reste toujours gabirich et non pas test1)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 public String connecter() { String etat = null; // test1 est le nom de la BD HibernateSessionFactory.setUrl("test1"); System.out.println("*****_____________________*****"); System.out.println(HibernateSessionFactory.getUrl()); System.out.println("*****_____________________*****"); Session session1 = HibernateSessionFactory.currentSession(); System.out.println("*********Configuration****************"); System.out.println(hibernateFactory.HibernateSessionFactory.getConfiguration().getProperty("hibernate.connection.url"));
est ce que vous pouvez m'aider???
Partager