教育行業(yè)A股IPO第一股(股票代碼 003032)

全國咨詢/投訴熱線:400-618-4000

Hibernate框架入門之Session接口

更新時間:2024年01月19日11時05分 來源:傳智教育 瀏覽次數(shù):

好口碑IT培訓

  Session是Java應用程序和Hibernate進行交互時所使用的主要接口,是持久化操作的核心API。它主要用于讀取、創(chuàng)建和刪除映射對象的實例,這一系列的操作將被轉換為數(shù)據(jù)表中的增加、修改、查詢和刪除操作。Session是輕量級的,實例的創(chuàng)建和銷毀不需要消耗太多的資源,同時它還是Hibernate的一級緩存,這個緩存主要用于存放當前工作單元加載的對象。

  獲取Session實例有兩種方式,一種是通過openSession()方法,另一種是通過getCurrentSession()方法。兩種方法獲取Session的代碼如下所示:

  以上兩種獲取Session實例的主要區(qū)別是:采用openSession()方法獲取Session實例時,SessionFactory直接創(chuàng)建一個新的Session實例,并且在使用完成后需要調用close()方法進行手動關閉;而getCurrentSession()方法創(chuàng)建的Session實例會被綁定到當前線程中,它在提交或回滾操作時會自動關閉。

  在Session中,提供了多個持久化的操作方法,其常用方法如表23-8所示。

  表23-8 Session中的常用方法

Session中的常用方法

  需要注意的是,Session是線程不安全的,當多個并發(fā)線程同時操作一個Session實例時,就可能導致Session數(shù)據(jù)存取的混亂(當方法內部定義和使用Session時,不會出現(xiàn)線程問題)。因此設計軟件架構時,應避免多個線程共享一個Session實例。

0 分享到:
和我們在線交談!