成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

全面介紹Hibernate session

開發(fā) 后端
這里介紹在Hibernate session就是Connection的一層高級封裝,一個session對應(yīng)了一個Connection,要實現(xiàn)延遲加載必須有session才行。

Hibernate還是比較常用的,于是我研究了一下Hibernate session,在這里拿出來和大家分享一下,希望對大家有用。

無論是立即加載還是延遲加載必須要連接數(shù)據(jù)庫的,而在java中連接數(shù)據(jù)庫是依賴java.sql.Connection,在Hibernate session就是Connection的一層高級封裝,一個session對應(yīng)了一個Connection,要實現(xiàn)延遲加載必須有session才行. 而且要進行延遲加載還必須保證是同一個session才行,用另外一個session去延遲加載前一個session的代理對象是不行的.大家都知道 Connection是使用過后必須要進行關(guān)閉的,那么我們?nèi)绾伪WC一次http請求過程中,一直都使用一個session呢,即一個 Connection呢.而且還要保證http請求結(jié)束后正確的關(guān)閉.

好,現(xiàn)在我們知道了我們要解決的問題
1.如何保證http請求結(jié)束后正確的關(guān)閉session
2.如何保證http請求過程中一直使用同一個session

***個問題很容易想到,使用過濾器

  1. public void doFilter(ServletRequest request, 
    ServletResponse response,FilterChain filterChain) {  
  2. try {  
  3. filterChain.doFilter(request, response);  
  4. }  
  5. catch (IOException e) {  
  6. e.printStackTrace();  
  7. }  
  8. catch (ServletException e) {  
  9. e.printStackTrace();  
  10. }  
  11. finally {  
  12. try {  
  13. HibernateUtil.commitTransaction();  
  14. }  
  15. catch (Exception e) {  
  16. HibernateUtil.rollbackTransaction();  
  17. }  
  18. finally {  
  19. HibernateUtil.closeSession();  
  20. }  
  21. }  

要解決第二個問題我們必須先搞清楚,http請求在java中是以什么樣的機制實現(xiàn)的,在java中一個請求就是一個線程,像流行的web容器 Tomcat等,往往都是采用線程池機制的也就是說有n個線程在池子里面,每當有http請求時,隨機從線程池中取出一個線程對象去處理請求,實際上多次請求可能使用的是同一線程也可能不是,這是隨機的.要保證整個請求中使用同一session最容易想到的就是把這個session綁定到線程上,在 java中使用ThreadLocal可以輕松綁定變量,每個線程有一個自己的ThreadLocal,這個ThreadLocal會隨線程的銷毀一起銷毀,既然是每個線程有一個那么多個線程間自然是不會有影響了,所以把session綁定在ThreadLocal里面是***的選擇了,***我把Hibernate session的相關(guān)代碼發(fā)出來。

下面是一個調(diào)用的例子: view plaincopy to clipboardprint?

  1. public static void main(String[] args) throws Exception {  
  2. HibernateUtil.initSessionFactory(new File(Test.class.getClassLoader
    (.getResource("hibernate.cfg.xml").getFile()));  
  3. Session session = HibernateUtil.getSession();  
  4. HibernateUtil.transaction();  
  5. User u = new User();  
  6. u.setName("test");  
  7. session.save(u);  
  8. HibernateUtil.commitTransaction();  
  9. HibernateUtil.closeSession();  

【編輯推薦】

  1. Hibernate類庫簡單描述
  2. 淺析Hibernate延遲加載
  3. Spring Hibernate簡單討論
  4. 介紹Hibernate版本的更新
  5. 簡單講述Hibernate實例
責任編輯:佚名 來源: IT168
相關(guān)推薦

2009-09-28 13:49:44

Hibernate Q

2009-09-23 17:41:05

Hibernate事務(wù)

2009-09-28 10:24:58

Hibernate基礎(chǔ)

2009-06-12 16:00:13

Session方法Hibernate

2009-09-25 17:19:28

Hibernate持久

2009-09-29 16:04:29

Hibernate S

2009-09-24 17:24:20

Hibernate S

2009-09-21 16:56:14

Hibernateibatis

2009-09-28 17:27:27

Hibernate A

2009-09-25 16:27:33

Hibernate S

2009-09-28 16:54:34

Hibernate示例

2009-09-23 15:50:21

Hibernate u

2009-09-24 10:50:31

Hibernate主鍵

2009-09-23 17:18:16

Hibernate S

2009-09-25 13:51:13

Hibernate S

2009-09-29 10:12:03

Hibernate A

2009-09-25 10:53:40

Hibernate S

2009-09-22 10:09:21

Hibernate S

2009-09-23 17:03:08

Hibernate S

2009-09-22 11:24:07

Hibernate查詢
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: www.蜜桃av | 日韩一级免费观看 | 欧美极品在线观看 | 中文字幕免费在线观看 | 国产一区二区在线91 | 国产网站在线播放 | 欧美a在线观看 | 日韩在线中文 | 免费久久99精品国产婷婷六月 | 午夜一区二区三区在线观看 | 日韩中文久久 | 亚洲精品视频三区 | 国产精品国产a级 | 国产精品99久久久久久久久久久久 | 亚洲国产一区二区视频 | 91精品国产综合久久久久久丝袜 | 欧美精品一区二区三区蜜臀 | a久久| 男人的天堂在线视频 | av在线一区二区三区 | 日韩有码在线播放 | a级免费视频| 日韩在线h | www.黄色网| a级片在线 | 国产精品欧美一区二区三区不卡 | 成人免费毛片片v | www.亚洲| 国产精品日韩欧美一区二区三区 | 91精品久久久久久久久中文字幕 | 国产高清精品一区二区三区 | 在线免费观看毛片 | 欧美一级免费片 | 色啪网 | 久久久久久久国产精品 | 成人久久久久 | 国产精品久久久久久久久久免费 | 国产在线中文 | 91成人午夜性a一级毛片 | 久草免费视 | 久久综合一区二区 |