Hibernate之openSession與getCurrentSession的區別
openSession 與 getCurrentSession的區別
(1)openSession 每一次獲得的是一個全新的session物件,而getCurrentSession獲得的是與當前執行緒繫結的session物件;
(2)openSession不需要配置,而getCurrentSession需要配置
thread
(3)openSession需要手動關閉,而getCurrentSession系統自動關閉
openSession出來的session要通過:session.close(),
而getSessionCurrent出來的session系統自動關閉,如果自己關閉會報錯
(4)Session是執行緒不同步的,要保證執行緒安全就要使用getCurrentSession
下面這段程式碼執行後可比較它們的(1)
package cn.blog.test;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
public class Test {
//openSession與getCurrentSession對比
public static void main(String[] args) {
Configuration configuration = new Configuration().configure();
SessionFactory sf = configuration.buildSessionFactory();
Session sessionOpen1 = sf.openSession();
Session sessionOpen2 = sf.openSession();
Session sessionThread1 = sf.getCurrentSession();
Session sessionThread2 = sf.getCurrentSession();
System.out.println(sessionOpen1.hashCode() + "<-------->" + sessionOpen2.hashCode()); //每次建立都是新的session物件
System.out.println(sessionThread1.hashCode() + "<-------->" + sessionThread2.hashCode()); //每次獲得的是當前session
}
}
相關文章
- openSession與getCurrentSession的區別Session
- openSession() 與 getCurrentSession() 有何不同和關聯呢?Session
- mybatis與hibernate的區別MyBatis
- Oracle與OpenJDK之間的區別OracleJDK
- PrepareStatement與Statement之間的區別REST
- GCD與NSOperation之間的區別GC
- PHP abstract與interface之間的區別PHP
- Hibernate get和load區別
- [OC]之 atomic 與 nonatomic的區別
- Hibernate的Session的get()和load()方法區別Session
- ??與?:的區別
- [摘]struts+spring+hibernate之間的關係與差別(ZT)Spring
- 【轉載】C#之int與Java之Integer的區別C#Java
- Java之String的equals與contentEquals區別Java
- 雲與本地部署 ERP 之間的區別
- size resize與capacity reserve之間的區別
- Hibernate和Ibatis區別和比較BAT
- Hibernate中Session.load/get區別Session
- 陣列地址與指標之間的區別與聯絡陣列指標
- 大資料分析與機器學習之間的區別與聯絡大資料機器學習
- MySQL的@與@@區別MySql
- mybatis #與$的區別MyBatis
- Null 與 “” 的區別Null
- &與&&, |與||區別
- in與exist , not in與not exist 的區別
- hibernate延遲載入(get和load的區別)
- [譯]HTML attribute與DOM property之間的區別?HTML
- python學習之isinstance與type的區別Python
- TCP、UDP、HTTP、SOCKET之間的區別與聯絡TCPUDPHTTP
- ios基礎之 view的frame 與 bounds 的區別 (轉)iOSView
- Java中Statement與PreparedStatement與CallableStatement之間的區別 - javarevisitedJava
- 深度學習與機器學習之間區別 - javaworld深度學習機器學習Java
- Spring之BeanFactory與ApplicationConText區別SpringBeanAPPContext
- CentOS 與 Ubuntu 的區別CentOSUbuntu
- artice與section的區別
- GET 與 POST 的區別
- WebSocket 與 Socket 的區別Web
- Postgresql與MySQL的區別MySql