手把手教你Hibernate


Hibernate簡介:

???? Hibernate是一個開放源代碼的對象關系映射框架城菊,它對JDBC進行了非常輕量級的對象封裝硫眨,它將POJO與數(shù)據(jù)庫表建立映射關系朦佩,是一個全自動的orm框架冯遂,hibernate可以自動生成SQL語句拟枚,自動執(zhí)行,使得Java程序員可以隨心所欲的使用對象編程思維來操縱數(shù)據(jù)庫吼渡。 Hibernate可以應用在任何使用JDBC的場合,既可以在Java的客戶端程序使用乓序,也可以在Servlet/JSP的Web應用中使用寺酪,Hibernate可以在應用EJB的J2EE架構中取代CMP,完成數(shù)據(jù)持久化的重任替劈。(百度百科)


????? 相信看完第一段的小白心里就會有個疑問,啥是ORM,一起介紹了吧


????? ORM:

???????? (Object Relation Mapping)翻譯成中文就是:對象關系映射簡稱ORM,這是一種程序技術,用于實現(xiàn)面向?qū)ο缶幊陶Z言里不同類型系統(tǒng)的數(shù)據(jù)轉換.

Hibernate開發(fā)包介紹

? 下載網(wǎng)址:https://sourceforge.net/projects/hibernate/files/hibernate-orm/5.0.7.Final/


下載好后解壓:


Hibernate中的子目錄進行簡單的介紹.


???? documentation 文件夾:存放Hibernate的相關文檔,包括參考文檔的API文檔


???? lib 文件夾:存放Hibernate編譯和運行所依賴的JAR包.其中erquired子目錄下包含了運行Hibernate項目必須得jar包

??? project 文件夾:存放了Hibernate各種相關的源代碼.


保存數(shù)據(jù)到數(shù)據(jù)庫中

?? 1.創(chuàng)建數(shù)據(jù)庫:(這里用的是mysql)

?????? create database hibernate; //創(chuàng)建數(shù)據(jù)庫

?????? use hibernate;//選中數(shù)據(jù)庫

? ?? CREATE TABLE `user` (

????????? ? `id` BIGINT(32) NOT NULL AUTO_INCREMENT

????????????? `username` VARCHAR(32) NOT NULL

???????????? `passuserword` VARCHAR(32) DEFAULT NULL

????????????? PRIMARY KEY (`id`)

) ENGINE=INNODB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

2.創(chuàng)建項目: 導入hibernate必須得jar包:

??????????? 數(shù)據(jù)庫驅(qū)動包:

??????????

? ? ? ? ? ? ? Hibernate必須得jar包位置在hibernate-release-5.0.7.Final\lib\required中

? 3.創(chuàng)建持久化類

? ? ? ? 持久化類是業(yè)務實體類,這里的持久化是指類的對象能夠被持久化保存到數(shù)據(jù)庫中.Hibernate使用普通java對象,(Plain Old java Object),即POJO的編程模式來進行持久化.(說白了就是寫個類,里面寫上屬性,給屬性提供get和set方法)

? 4.編寫映射配置文件:

????? 實體類還不具備赤計劃操作的能力,Hibernate需要知道實體類映射到數(shù)據(jù)庫中的那個表,以及類中的哪個屬性對應數(shù)據(jù)庫中的哪個字段,這些就需要在映射中的配置.

????? 編寫映射文件:

??????? 格式:xml

??????? 名稱:隨意? 建議格式:類名.hbm.xml

??????? 路徑:隨意? 建議跟實體類放在一起

??????? 導入約束:dtd約束

???????? 位置:在Hibernate的核心jar包中名字為hibernate-mapping-3.0.dtd.如下圖.(暫時找不到或者不想找就手抄吧)

??

下面是配置文件具體的內(nèi)容:


5.映射文件有了,該編寫主配置文件了

???? Hibernate的配置文件主要是用來配置數(shù)據(jù)庫連接以及Hibernate運行時所需要的各個屬性的值的.

? ? ? 編寫映射文件:

?? ? ? 格式:xml或properties都行

?????? 名稱:隨意? 建議格式:類名.cfg.xml

?????? 路徑:隨意? 建議放在src

?????? 導入約束:dtd約束

? ? ? ? 位置:在Hibernate的核心jar包中名字為hibernate-configuration-3.0.dtd.如下圖.(暫時找不到或者不想找就手抄吧)


下面是主配置文件具體的介紹:



測試一下:


成功存到了數(shù)據(jù)庫

? Hbernate中的API

??????? Configuration對象

??????????????? Configuration主要是用于啟動,加載,管理Hibernate的配置文件的.啟動Hibernate的時候,Configuration就會先找到Hibernate配置文件的位置,然后讀取他,在創(chuàng)建一個唯一的SessionFactory實例.

?????? Configuration加載核心配置文件的三種方法:

1.1:new Configuration():會自動加載src目錄下的名稱為? hibernate.properties

1.2:new Configuration().configure():會自動加載src目錄下的名稱為 hibernate.cfg.xml(一般情況都使用這一種)

1.3:new Configuration().configure("config/h.c.xml"):會加載src目錄下config目錄下的 h.c.xml

2:創(chuàng)建SessionFactory

BuildSessionFactory();

3:加載映射文件

?addResource("映射文件位置");

SessionFactory

??? SessionFactory是負責Hibernate的初始化建立Session對象的.

構建session的方法

?? Session:

?????? 常用方法:

??????????????? save(Object);???????????? 保存一個實體到數(shù)據(jù)庫

??????????????? update(Object);???????? 更新一個實體

??????????????? delete(Object);????????? 刪除一個實體

??????????????? get(Class clazz,Serializable id);??? 根據(jù)id查詢一個實體

??????????????? beginTransaction();????????? 開啟視圖,并返回事務對象

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末寄雀,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子陨献,更是在濱河造成了極大的恐慌盒犹,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,539評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件眨业,死亡現(xiàn)場離奇詭異急膀,居然都是意外死亡,警方通過查閱死者的電腦和手機龄捡,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評論 3 396
  • 文/潘曉璐 我一進店門卓嫂,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人聘殖,你說我怎么就攤上這事晨雳。” “怎么了奸腺?”我有些...
    開封第一講書人閱讀 165,871評論 0 356
  • 文/不壞的土叔 我叫張陵餐禁,是天一觀的道長。 經(jīng)常有香客問我突照,道長帮非,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,963評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮喜鼓,結果婚禮上副砍,老公的妹妹穿的比我還像新娘。我一直安慰自己庄岖,他們只是感情好豁翎,可當我...
    茶點故事閱讀 67,984評論 6 393
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著隅忿,像睡著了一般心剥。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上背桐,一...
    開封第一講書人閱讀 51,763評論 1 307
  • 那天优烧,我揣著相機與錄音,去河邊找鬼链峭。 笑死畦娄,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的弊仪。 我是一名探鬼主播熙卡,決...
    沈念sama閱讀 40,468評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼励饵!你這毒婦竟也來了驳癌?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤役听,失蹤者是張志新(化名)和其女友劉穎颓鲜,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體典予,經(jīng)...
    沈念sama閱讀 45,850評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡甜滨,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,002評論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了熙参。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片艳吠。...
    茶點故事閱讀 40,144評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖孽椰,靈堂內(nèi)的尸體忽然破棺而出昭娩,到底是詐尸還是另有隱情,我是刑警寧澤黍匾,帶...
    沈念sama閱讀 35,823評論 5 346
  • 正文 年R本政府宣布栏渺,位于F島的核電站,受9級特大地震影響锐涯,放射性物質(zhì)發(fā)生泄漏磕诊。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,483評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望霎终。 院中可真熱鬧滞磺,春花似錦、人聲如沸莱褒。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,026評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽广凸。三九已至阅茶,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間谅海,已是汗流浹背脸哀。 一陣腳步聲響...
    開封第一講書人閱讀 33,150評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留扭吁,地道東北人撞蜂。 一個月前我還...
    沈念sama閱讀 48,415評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像智末,于是被迫代替她去往敵國和親谅摄。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,092評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 本文中我們介紹并比較兩種最流行的開源持久框架:iBATIS和Hibernate顽照,我們還會討論到Java Persi...
    大同若魚閱讀 4,312評論 4 27
  • Hibernate: 一個持久化框架 一個ORM框架 加載:根據(jù)特定的OID,把一個對象從數(shù)據(jù)庫加載到內(nèi)存中OID...
    JHMichael閱讀 1,973評論 0 27
  • 本文包括: 1由蘑、CRM 項目的整體介紹 2、Hibernate 框架概述 3代兵、Hibernate 快速入門 4尼酿、H...
    廖少少閱讀 3,475評論 9 66
  • 目錄 1. Hibernate框架的概述 1.1 Hibernate簡介 1.2 為什么要學習Hibernate ...
    深海魚Q閱讀 1,024評論 0 14
  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法植影,內(nèi)部類的語法裳擎,繼承相關的語法,異常的語法思币,線程的語...
    子非魚_t_閱讀 31,644評論 18 399