Bonjour,
Dans le cadre de mon stage, je doit réaliser une application en utilisant Hibernate. (je ne connais pas énormemment Hibernate).
Tout fonctionne parfaitement, à part le fait que je n'arrive pas à prévenir l'utilisateur si la base de données est accessible ou non, si la base de données n'est pas accessible (ou l'url incorect) le programme se plante et Hibernate lance une exception... Le problème est que je ne vois pas du tout où je doit placer un bloc try catch pour récupérer une erreur de connexion
Voici mon code 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
34
35
36
37
38
39
40
41
42
43
44
45 package util; import org.hibernate.*; import org.hibernate.service.*; import org.hibernate.cfg.Configuration; public class HibernateUtil { private static SessionFactory sessionFactory; private static ServiceRegistry serviceRegistry; public static Session openSession(){ if (sessionFactory == null) configureSessionFactory(); return sessionFactory.openSession(); } public static void close(Session session) { if (session != null) { try { session.close(); } catch (HibernateException e) { e.printStackTrace(); } } } public static void rollback(Transaction tx) { try { if (tx != null) tx.rollback(); } catch (HibernateException e) { e.printStackTrace();} } private static void configureSessionFactory(){ Configuration configuration = new Configuration(); configuration.configure(); configuration.getProperties(); configuration.setProperty("hibernate.connection.url", PropertiesUtil.get(PropertiesUtil.HIBERNATE_URL)); configuration.setProperty("hibernate.connection.password", Crypto.decrypt(PropertiesUtil.get(PropertiesUtil.HIBERNATE_PASS))); configuration.setProperty("hibernate.connection.username", Crypto.decrypt(PropertiesUtil.get(PropertiesUtil.HIBERNATE_USERNAME))); serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties()).buildServiceRegistry(); sessionFactory = configuration.buildSessionFactory(serviceRegistry); } }
Et voici comment je l'utilise :
J'ai déjà lu plein de sujet sur ce forum, sur le forum Hibernate ..... J'y ai vu plein de solutions différentes, mais je n'ai jamais réussi à catcher l'exception.
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 protected Session session; protected Transaction transaction; public Boolean saveOrUpdate(T obj){ try{ transaction = session.beginTransaction(); session.saveOrUpdate(obj); transaction.commit(); return true; } catch(HibernateException e){ HibernateUtil.rollback(transaction); return false; } finally{ HibernateUtil.close(session); } }
aidez moi SVP![]()
Partager