Hibernate入門
什么是orm思想:
1.hibernate使用orm思想對(duì)數(shù)據(jù)庫進(jìn)行crud操作
2.在web階段學(xué)習(xí)的javabean,更正確的叫法叫:實(shí)體類
3.orm: object relational mapping ,對(duì)象關(guān)系映射
(1)文字描述:??讓實(shí)體類和數(shù)據(jù)可進(jìn)行一一對(duì)應(yīng)關(guān)系 ?(類中的屬性跟表中的字段一一對(duì)應(yīng));使用配置文件配置
(2)不需要直接操作數(shù)據(jù)庫表,而操作對(duì)應(yīng)實(shí)體類對(duì)象
搭建hibernate環(huán)境:
一:導(dǎo)包
1.hibernate必須的jar包;
2.hibernate運(yùn)行時(shí)會(huì)輸出日志信息,但是hibernate本身沒有支持的jar包,所以要導(dǎo)入外部jar包來支持
3.mysql驅(qū)動(dòng)jar包
二:創(chuàng)建實(shí)體類;(hibernate中要求每個(gè)類中都有一個(gè)唯一的屬性值,例如表中的主鍵id)
三:配置實(shí)體類和數(shù)據(jù)庫表的一一對(duì)應(yīng)關(guān)系(映射關(guān)系)
1.使用配置文件實(shí)現(xiàn)映射關(guān)系
(1)創(chuàng)建xml格式的配置文件
-映射配置文件名稱和位置沒有固定的要求
-建議:實(shí)體類所在包里面創(chuàng)建.實(shí)體類名稱:hbm.xml (hbm: hibernate mapping)
(2)配置是xml格式,在配置文件中首先引入xml約束
-hibernate中引入的事dtd約束
(3)配置映射關(guān)系;
四:創(chuàng)建hibernate的核心配置文件
(1)核心配置文件格式xml,位置文件名稱和位置是固定的
-位置:必須src下面
-名字:hibernate.cfg.xml
(2)引入dtd約束
(3)hibernate操作過程中,只會(huì)加載核心配置文件,其他文件不會(huì)加載
①:配置數(shù)據(jù)庫的信息
②:配置hibernate信息
③:把映射文件放到核心配置文件中
實(shí)現(xiàn)操作步驟:
第一步:加載hibernate核心配置文件
第二步:創(chuàng)建SessionFactory對(duì)象
第三步:使用SessionFactory創(chuàng)建session對(duì)象
第四步:開啟事務(wù)
第五步:寫具體的邏輯crud操作
第六步:提交事務(wù)
第七步:關(guān)閉資源(web項(xiàng)目中沒必要關(guān)閉資源)
hibernate核心api:
-Configuration:
(1)到src下找到名稱hibernate.cfg.xml配置文件,創(chuàng)建對(duì)象,吧配置文件放到對(duì)象里
-SessionFactory
1.使用configuration對(duì)象創(chuàng)建sessionFactory對(duì)象
(1).創(chuàng)建sessionFactory過程中做的事情
-根據(jù)核心配置文件中,有數(shù)據(jù)庫配置,有映射文件部分,到數(shù)據(jù)庫里面根據(jù)映射關(guān)系把表創(chuàng)建
2.創(chuàng)建sessionFactory過程中,這個(gè)過程特別耗資源
(1)因此在hibernate操作中,建議一個(gè)項(xiàng)目一般創(chuàng)建一個(gè)sessionFactory對(duì)象
(2)具體實(shí)現(xiàn):
*寫工具類,寫靜態(tài)代碼塊實(shí)現(xiàn)(靜態(tài)代碼塊在類加載時(shí)候執(zhí)行,執(zhí)行一次)
-Session(重點(diǎn))
1.session類似于jdbc中的connection
2.調(diào)用session中的方法
(1)添加 save 方法
(2)修改 update
(3)刪除 delete
(4)根據(jù)id查詢 get 方法
3.session對(duì)象單線程對(duì)象
(1)sess對(duì)象不能共用,只能自己使用
-Transaction(事務(wù))
1.session開啟事務(wù)
2.方法
(1)提交.commit
(2)回滾:roll back
hibernate對(duì)象的三種狀態(tài):
1.瞬時(shí)狀態(tài)
2.持久狀態(tài)
3.托管狀態(tài)
二級(jí)緩存:
各個(gè)session查出來的信息儲(chǔ)存在的一個(gè)公共區(qū)域;
更改信息,如何保持緩存與數(shù)據(jù)庫信息一致:
先檢查緩存中是否有要更改的信息,有的話先刪除掉,再把數(shù)據(jù)庫的信息更改