1. 程式人生 > >Hibernate入門(二)之相關API

Hibernate入門(二)之相關API

Configuration 配置物件. Configuration主要用於Hibernate框架載入核心配置檔案和對映檔案.

//這種寫法會去src下讀取hibernate.cfg.xml檔案.預設寫法 Configuration conf = new Configuration().configure(); //如果不想使用預設的配置檔案,也可以使用指定目錄下的配置檔案 Configuration conf = new Configuration().configure("檔案位置"); 1 2 3 4 SessionFactory Session工廠物件 SessionFactory介面負責Hibernate的初始化和建立Session物件.它在Hibernate中起到一個緩衝區的作用,Hibernate可以將自動生成的SQL語句\對映資料以及某些可以重複利用的資料放在這個緩衝區中.同時它還儲存了對資料庫配置的所有對映關係,維護了當前的二級快取.  SessionFactory是通過Configuration物件獲取的,起獲取方法如下:

SessionFactory sessionFactory = config.buildSessionFactory(); 1 SessionFactory有以下特點: 它是執行緒安全的,它的同一個例項能夠多個執行緒共享. 它是重量級的,不能隨意的建立和銷燬它的例項.  由於SessionFactory的特點,一般情況下,一個專案中只需要一個SessionFactory,只有當應用中存在多個數據源時,才為每個資料來源簡歷一個SessionFactory例項. Session Session是應用程式與資料庫之間互動操作的一個單執行緒物件,是Hibernate運作的中心,它的主要功能是為持久化物件提供建立\讀取和刪除的能力,所有持久化物件必須在session的管理下才可以進行持久化操作.

Session的獲取方式及區別 建立SessionFactory例項後,就可以通過它來獲取Session的例項.獲取Session例項有兩種方式,一種是通過openSession()方法,另一種是通過getCurrentSession()方法.程式碼如下:

Session session = sessionFactory.openSession();

Session session = sessionFactory.getCurrentSession(); 1 2 3 使用openSession方法獲取Session例項時,SessionFactory直接建立一個新的Session例項,並且在使用完成後需要呼叫close方法進行手動關閉.而getCurrentSession方法建立的Session例項會被繫結到當前執行緒中,它在提交或回滾操作時會自動關閉.

Session是執行緒不安全的,多個併發執行緒同事操作一個Session例項時,就可能導致Session資料存取的混亂(方法內部定義和使用時,不會出現執行緒安全問題).因此設計軟體架構時,應避免多個執行緒貢獻改一個Session例項.同時它是輕量級的,建立和銷燬不需要消耗太多的資源.它還有一個快取,即Hibernate一級快取,這個快取主要用於存放當前工作單元載入的物件.

Session中的常用方法 save() update() 和 saveOrUpdate()方法: 用於增加和修改物件. delete()方法: 用於刪除物件. get() 和 load()方法: 根據主鍵查詢. create() 和 createSqlQuery()方法: 用於資料庫操作物件. createCriteria()方法: 條件查詢. ---------------------  作者:xinyang_code  來源:CSDN  原文:https://blog.csdn.net/qq_36376387/article/details/78650611  版權宣告:本文為博主原創文章,轉載請附上博文連結!