# hibernate好好玩(2/26進來看) ###### tags: `hibernate` 2/26(五)下午4:30 Hibernate作業 專二專案 JDBC相關連線改成Hibernate 組長或技術長的組態檔設定好 但每個人還是要瞭解組態檔的相關參數 可以參考老師的opensessionfilter 把transaction交給此類別控管 這樣每個人的service就可以簡化 ``` public class OpenSessionViewFilter implements Filter { @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { SessionFactory factory = HibernateUtil.getSessionFactory(); Session session = factory.getCurrentSession(); try { session.beginTransaction(); System.out.println("Transaction begin."); chain.doFilter(request, response); session.getTransaction().commit(); System.out.println("Transaction Commit."); } catch (Exception e) { session.getTransaction().rollback(); System.out.println("Transaction Rollbabk."); e.printStackTrace(); } finally { System.out.println("Session Closed."); } } ``` 參考老師的servletlistenser 另外加sessionFactory 開啟和關閉 ``` public class SessionFactoryListener implements ServletContextListener { @Override public void contextDestroyed(ServletContextEvent sce) { HibernateUtil.closeSessionFactory(); System.out.println("SessionFactory Closed."); } @Override public void contextInitialized(ServletContextEvent sce) { HibernateUtil.getSessionFactory(); System.out.println("SessionFactory Created."); } } ``` 組員用自己table 每組交一個專案 大家加油