session.openSession()和session.getCurrentSession()兩個方法都是得到session對象,但是區別是:
openSession()每次得到的都是新的session對象,用完後要手動close()。
getCurrentSession()是從上下文(上下文有兩種:一種是thread,主要是從數據庫來界定它的事務;一種是jta,採用分佈式來界定它的事務,jta 要運行的時候需要application server即應用服務器的支持)找,如果有session對象,則用舊的,如果沒有,則建一個新的session,事務提交後自動closeSession()。
注:什麼時候要用到currentSession呢,比如在添加用戶的時候,是往user表添加一條數據,但如果要在添加user的同時也向日誌表添加一條記錄,用hibernate來實現的話,這兩個添加方法的操作理應放在同一個事務裏面,要麼同時提交,要麼回滾。
最後,歡迎訪問風格清新簡潔的輕博客網站[指尖一刻]