Hibernate的使用(一)

什么是Hibernate?

?????? 開源的,輕量級的,內(nèi)部實(shí)現(xiàn)了ORM思想的,封裝了JDBC的持久層框架.那么什么是開源的,它指的是開放源代碼;輕量級的,是因?yàn)樗牡馁Y源(內(nèi)存)少,依賴的jar包少;內(nèi)部實(shí)現(xiàn)了ORM思想指的是它不再關(guān)注sql語句的編寫,只需操作實(shí)體類的屬性和方法;封裝了JDBC因此對比JDBC的效率會有所降低,但是Hibernate提供了一系列的優(yōu)化手段保證查詢效率.

第一部分 Hibernate的入門

這一部分用一句話概括:一個思想,兩個映射,三個準(zhǔn)備,七個步驟.

一個思想:

?????? 指的是ORM思想,是Object Relation Mapping的縮寫(對象關(guān)系映射).

?????? ORM思想在Hibernate中有三個步驟:

?????????????? (1)將實(shí)體類和數(shù)據(jù)庫表映射起來;

?????????????? (2)將類中的屬性和表中的字段映射起來;

?????????????? (3)使用配置文件將這些關(guān)系描述出來.

兩個映射:

?????? 指的是描述實(shí)體類和數(shù)據(jù)庫表的映射關(guān)系的xml文件,是搭建Hibernate運(yùn)行環(huán)境的一個步驟,就要涉及馬上要講的三個準(zhǔn)備.

三個準(zhǔn)備: ? ?

???????? 搭建Hibernate運(yùn)行環(huán)境需要三個準(zhǔn)備工作:

???????????????? 第一步,創(chuàng)建工程,導(dǎo)入jar包(可到http://sourceforge.net/projects/hibernate/files/hibernate-orm/5.0.7.Final/?中下載);

???????????????? 第二步,根據(jù)表編寫它的實(shí)體類和實(shí)體類映射文件,這里要注意的是映射文件的位置以及命名(位置:實(shí)體類所在的包下,命名:實(shí)體類名.hbm.xml);

xml文件的編寫首先要導(dǎo)入DTD約束,如圖1

圖1

?然后將實(shí)體類和數(shù)據(jù)庫表映射起來,使用的是class標(biāo)簽,如圖2

圖2

? 然后就是將類中的屬性和表中的字段映射起來,這一涉及到配置主鍵和配置普通屬性,配置主鍵使用id標(biāo)簽,配置普通屬性使用property標(biāo)簽,如圖3

圖3

第三步,編寫核心配置文件,這里需要配置數(shù)據(jù)庫信息、Hibernate的配置信息以及映射文件的位置(位置:src下;命名:hibernate.cfg.xml).

核心配置文件首先也要導(dǎo)入DTD約束,但和映射文件的約束不同,如圖4

圖4

然后就是就是編寫數(shù)據(jù)庫配置信息和hibernate配置信息,如圖5

圖5

在做完以上工作后就可以對數(shù)據(jù)庫進(jìn)行增刪改查了!

七個步驟:

??????? (1)加載配置文件:

???????????????? Configuration cfg = new Configuration();

???????????????? cfg.configure();

??????? (2)構(gòu)建一個SessionFactory對象

? ? ? ? ? ? ? ? ? SessionFactory? factory? =? cfg.buildSessionFactory();

??????? (3)打開一個新的session對象

? ? ? ? ? ? ? ? ? Session session = sessionFactory.openSession();

??????? (4)開啟事務(wù),返回事務(wù)對象

? ? ? ? ? ? ? ? ? Transaction tx = session.beginTransaction();

??????? (5)增刪改查:使用session的save、delete、get/load方法進(jìn)行CRUD(增刪改查)操作

??????? (6)提交事務(wù)

? ? ? ? ? ? ? ?? tx.commit();

??????? (7)釋放資源

? ? ? ? ? ? ? ?? session.close();

?????????????? ? sessionFactory.close();

這時我們可進(jìn)一步抽取一個工具類HibernateUtils,如圖6

圖6

------------未完待續(xù)---------

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 本文中我們介紹并比較兩種最流行的開源持久框架:iBATIS和Hibernate,我們還會討論到Java Persi...
    大同若魚閱讀 4,459評論 4 27
  • Hibernate的簡介及簡單使用 一、什么是Hibernate。 還在自學(xué)JavaWeb基礎(chǔ)的童鞋們可能聽到Hi...
    曹楓香閱讀 463評論 0 3
  • 本文包括: 1、CRM 項(xiàng)目的整體介紹 2、Hibernate 框架概述 3、Hibernate 快速入門 4、H...
    廖少少閱讀 3,533評論 9 66
  • Hibernate: 一個持久化框架 一個ORM框架 加載:根據(jù)特定的OID,把一個對象從數(shù)據(jù)庫加載到內(nèi)存中OID...
    JHMichael閱讀 2,107評論 0 27
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,871評論 18 399

友情鏈接更多精彩內(nèi)容