更新時間:2020-02-28 10:55:38 來源:動力節(jié)點 瀏覽2079次
Hibernate是一個開放源代碼的對象關系映射框架,它對JDBC進行了非常輕量級的對象封裝,使得Java程序員可以隨心所欲的使用對象編程思維來操縱數(shù)據庫。Hibernate可以應用在任何使用JDBC的場合,既可以在Java的客戶端程序使用,也可以在Servlet/JSP的Web應用中使用,最具革命意義的是,Hibernate可以在應用EJB的J2EE架構中取代CMP,完成數(shù)據持久化的重任。
核心接口
Hibernate的核心接口一共有6個,分別為:Session、SessionFactory、Transaction、Query、Criteria和Configuration。這6個核心接口在任何開發(fā)中都會用到。通過這些接口,不僅可以對持久化對象進行存取,還能夠進行事務控制。下面對這6個核心接口分別加以介紹。
Session
Session接口負責執(zhí)行被持久化對象的CRUD操作(CRUD的任務是完成與數(shù)據庫的交流,包含了很多常見的SQL語句。)。但需要注意的是Session對象是非線程安全的。同時,Hibernate的session不同于JSP應用中的HttpSession。這里當使用session這個術語時,其實指的是Hibernate中的session,而以后會將HttpSession對象稱為用戶session。
SessionFactory
SessionFactory接口負責初始化Hibernate。它充當數(shù)據存儲源的代理,并負責創(chuàng)建Session對象。這里用到了工廠模式。需要注意的是SessionFactory并不是輕量級的,因為一般情況下,一個項目通常只需要一個SessionFactory就夠,當需要操作多個數(shù)據庫時,可以為每個數(shù)據庫指定一個SessionFactory。
Transaction
Transaction接口是一個可選的API,可以選擇不使用這個接口,取而代之的是Hibernate的設計者自己寫的底層事務處理代碼。Transaction接口是對實際事務實現(xiàn)的一個抽象,這些實現(xiàn)包括JDBC的事務、JTA中的UserTransaction、甚至可以是CORBA事務。之所以這樣設計是能讓開發(fā)者能夠使用一個統(tǒng)一事務的操作界面,使得自己的項目可以在不同的環(huán)境和容器之間方便地移植。
Query
Query接口讓你方便地對數(shù)據庫及持久對象進行查詢,它可以有兩種表達方式:HQL語言或本地數(shù)據庫的SQL語句。Query經常被用來綁定查詢參數(shù)、限制查詢記錄數(shù)量,并最終執(zhí)行查詢操作。
Criteria
Criteria接口與Query接口非常類似,允許創(chuàng)建并執(zhí)行面向對象的標準化查詢。值得注意的是Criteria接口也是輕量級的,它不能在Session之外使用。
Configuration
Configuration接口的作用是對Hibernate進行配置,以及對它進行啟動。在Hibernate的啟動過程中,Configuration類的實例首先定位映射文檔的位置,讀取這些配置,然后創(chuàng)建一個SessionFactory對象。雖然Configuration接口在整個Hibernate項目中只扮演著一個很小的角色,但它是啟動hibernate時所遇到的每一個對象。
hibernate的優(yōu)點
Hibernate會處理映射的Java類來使用XML文件,數(shù)據庫表和無需編寫任何一行代碼。
提供了簡單的API,用于直接從數(shù)據庫中存儲和檢索Java對象。
如果有變化,數(shù)據庫或任何表中的那么只需要修改XML文件的屬性。
抽象掉不熟悉的SQL類型,并提供我們解決熟悉的Java對象。
Hibernate不要求應用服務器進行操作。
操縱數(shù)據庫對象的復雜關聯(lián)。
盡量減少與智能讀取策略數(shù)據庫的訪問。
提供數(shù)據的簡單查詢。
hibernate配置
先下載hibernate所需包,我下載的是hibernate-distribution-3.6.4.Final,解壓縮下載的文件,目錄結構如下所示。
然后將lib中的包拷貝到項目中即可。
同時也可以使用myeclipse直接加載hibernate框架。
配置文件hibernate.cfg.xml
以上就是動力節(jié)點Java培訓機構小編介紹的“Java框架入門視頻教程:hibernate入門”的內容,希望對大家有幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務。