日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Hibernate中把Session和线程绑定的配置

發布時間:2023/12/1 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Hibernate中把Session和线程绑定的配置 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我們一開始用session都用HibernateUtil工具類獲得Session對象,因為該工具類可以保證將線程不安全的Session綁定到當前線程內,但每次返回的對象都是一個新的session,我寫了一個測試方法如下:

@Testpublic void test() {Session s1 = HibernateUtils.openSession();Session s2 = HibernateUtils.openSession();if(s1 == s2) {System.out.println("true");}else {System.out.println("false");}}

輸入結果如下:

在Hibernate3開始,Hibernate增加了SessionFactory.getCurrentSession();方法,該方法可以直接獲取當前線程的Session對象,而且每次返回的都是同一個對象,下面是配置步驟,首先,我們在hibernate.cfg.xml寫入如下代碼:

<!-- 把session和線程綁定,從而實現一個線程只有一個Session --><property name="hibernate.current_session_context_class">thread</property>

這個時候就配置好了,下面我們寫一個測試方法來測試一下吧:

@Testpublic void test() {Session s1 = HibernateUtils.getCurrentSession();Session s2 = HibernateUtils.getCurrentSession();if(s1==s2) {System.out.println("true");}}

下面這個代碼就是獲取當前線程的session,我將它封裝到HibernateUtils類里面了

Session s1 = HibernateUtils.getCurrentSession()

具體代碼如下:

public static Session getCurrentSession() {//只有配置了把session和線程綁定之后,才能使用此方法,否則返回值為nullreturn factory.getCurrentSession();}

這個時候我們在運行一下:

發現輸出結果為true,說明返回的是同一個對象
注:Hibernate的Session會隨著getCurrentSession()方法自動打開,并伴隨事物的·提交自動關閉,非常方便

總結

以上是生活随笔為你收集整理的Hibernate中把Session和线程绑定的配置的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。