Hibernate(框架)學(xué)習(xí)總結(jié)

1、什么是Hibernate

Hibernate是輕量級(jí)JavaEE應(yīng)用的持久層解決方案,是一個(gè)關(guān)系數(shù)據(jù)庫(kù)ORM框架(ORM,對(duì)象關(guān)系映射 Object Relationship mapper)

ORM 就是通過(guò)將Java對(duì)象映射到數(shù)據(jù)庫(kù)表,通過(guò)操作Java對(duì)象,就可以完成對(duì)數(shù)據(jù)表的操作

輕量級(jí):指的是對(duì)于內(nèi)存,cpu資源消耗比較小,學(xué)習(xí)也相對(duì)容易。

發(fā)展由來(lái):

jdbc實(shí)現(xiàn)DAO數(shù)據(jù)訪問(wèn),dbutils框架來(lái)實(shí)現(xiàn)DAO操作可以簡(jiǎn)化數(shù)據(jù)庫(kù)操作(但還不能脫離sql語(yǔ)句),hibernate也是一個(gè)持久層(DAO)框架不需要編寫(xiě)相關(guān)的sql語(yǔ)句就可以操作數(shù)據(jù)庫(kù)。

Orm對(duì)象關(guān)系映射要完成的工作是什么?

完成的是類(lèi)與表的映射,類(lèi)中屬性與表字段的映射。它們之間的這種映射關(guān)系是非常嚴(yán)格的,有專(zhuān)門(mén)的文件來(lái)實(shí)現(xiàn)這種映射關(guān)系的配置(配置文件實(shí)質(zhì)就是一個(gè)xml文件,*.hbm.xml)。*的取名一般為實(shí)體類(lèi)的類(lèi)名。

Hibernate要操作數(shù)據(jù)庫(kù)同樣也需要連接數(shù)據(jù)庫(kù),要連接數(shù)據(jù)庫(kù)就必須有連接數(shù)據(jù)庫(kù)的四項(xiàng)基本信息(driver, url,username,password),hibernate中為了規(guī)范(hibernate配置文件中包含有數(shù)據(jù)庫(kù)連接的基本信息,文件名:hibernate.cfg.xml)

Hibernate 就是底層使用了jdbc實(shí)現(xiàn),并進(jìn)行了封裝的一個(gè)輕量級(jí)的持久化解決方案。

Hibernate提供了對(duì)關(guān)系型數(shù)據(jù)庫(kù)增刪改成操作

JPAJava Persistence API.JPA通過(guò)JDK 5.0注解或XML描述對(duì)象-關(guān)系表的映射關(guān)系(只有接口規(guī)范)

Hibernate最流行ORM框架,通過(guò)對(duì)象-關(guān)系映射配置,可以完全脫離底層SQL

MyBatis本是apache的一個(gè)開(kāi)源項(xiàng)目 iBatis,支持普通 SQL查詢(xún),存儲(chǔ)過(guò)程和高級(jí)映射的優(yōu)秀持久層框架

Apache DBUtils 、Spring JDBCTemplate

持久化技術(shù)有哪些?按封裝程序由高到低排列

Hibernate>mybatis>spring jdbcTemplate ,dbutils > jdbc

2、Hibernate的優(yōu)點(diǎn)

Hibernate對(duì)JDBC訪問(wèn)數(shù)據(jù)庫(kù)的代碼做了封裝,大大簡(jiǎn)化了數(shù)據(jù)訪問(wèn)層繁瑣的重復(fù)性代碼

Hibernate是一個(gè)基于jdbc的主流持久化框架,是一個(gè)優(yōu)秀的orm實(shí)現(xiàn),它很大程度的簡(jiǎn)化了dao層編碼工作

Hibernate使用Java的反射機(jī)制,而不是字節(jié)碼增強(qiáng)程序類(lèi)實(shí)現(xiàn)透明性

Hibernate的性能非常好,因?yàn)樗且粋€(gè)輕量級(jí)框架。映射的靈活性很出色。它支持很多關(guān)系型數(shù)據(jù)庫(kù),從一對(duì)一到多對(duì)多的各種復(fù)雜關(guān)系。

Hibernate本身性能不是很好,存在很多優(yōu)化手段(一級(jí)緩存、二級(jí)緩存、查詢(xún)緩存、抓取策略)

3、Hibernate準(zhǔn)備工作

1.準(zhǔn)備hibernate3.x的開(kāi)發(fā)包

開(kāi)發(fā)包文件結(jié)構(gòu)

lib文件夾內(nèi)容

補(bǔ)充:log4j(log for java) 用于記錄日志

Log4j的主要作用是解放程序員,避免程序員去操作IO流。

什么是日志?

用文本的方式將軟件操作過(guò)程中所發(fā)生的一系列操作全部記錄下來(lái)

如何學(xué)習(xí)log4j?

導(dǎo)入log4j.jar包

學(xué)習(xí)如何配置log4j(配置文件:src/log4j.properties)

準(zhǔn)備完整所需的Hibernate的jar包

準(zhǔn)備hibernate配置文件(hibernate.cfg.xml)

DTD約束文件在MyEclipse中的關(guān)聯(lián)

準(zhǔn)備hibernate映射文件

4、Hibernate操作

7個(gè)步驟

1.加載hibernate配置文件及映射文件

2.得到SessionFactory對(duì)象(好比數(shù)據(jù)庫(kù)連接池)

3.得到Session對(duì)象(好比數(shù)據(jù)庫(kù)連接Connection)

4.開(kāi)啟事務(wù)

5.執(zhí)行CRUD操作

6.提交或回滾事務(wù)

7.關(guān)閉資源(session關(guān)閉 sessionFactory關(guān)閉 )

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

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

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