1容客、什么是Hibernate
Hibernate是輕量級(jí)JavaEE應(yīng)用的持久層解決方案洁墙,是一個(gè)關(guān)系數(shù)據(jù)庫ORM框架(ORM,對象關(guān)系映射 Object Relationship mapper)
ORM 就是通過將Java對象映射到數(shù)據(jù)庫表,通過操作Java對象蕊程,就可以完成對數(shù)據(jù)表的操作
輕量級(jí):指的是對于內(nèi)存雏搂,cpu資源消耗比較小藕施,學(xué)習(xí)也相對容易。
發(fā)展由來:
jdbc實(shí)現(xiàn)DAO數(shù)據(jù)訪問凸郑,dbutils框架來實(shí)現(xiàn)DAO操作可以簡化數(shù)據(jù)庫操作(但還不能脫離sql語句)裳食,hibernate也是一個(gè)持久層(DAO)框架不需要編寫相關(guān)的sql語句就可以操作數(shù)據(jù)庫。
Orm對象關(guān)系映射要完成的工作是什么芙沥?
完成的是類與表的映射诲祸,類中屬性與表字段的映射。它們之間的這種映射關(guān)系是非常嚴(yán)格的而昨,有專門的文件來實(shí)現(xiàn)這種映射關(guān)系的配置(配置文件實(shí)質(zhì)就是一個(gè)xml文件救氯,*.hbm.xml)。*的取名一般為實(shí)體類的類名歌憨。
Hibernate要操作數(shù)據(jù)庫同樣也需要連接數(shù)據(jù)庫着憨,要連接數(shù)據(jù)庫就必須有連接數(shù)據(jù)庫的四項(xiàng)基本信息(driver, url,username,password),hibernate中為了規(guī)范(hibernate配置文件中包含有數(shù)據(jù)庫連接的基本信息,文件名:hibernate.cfg.xml)
Hibernate 就是底層使用了jdbc實(shí)現(xiàn)务嫡,并進(jìn)行了封裝的一個(gè)輕量級(jí)的持久化解決方案享扔。
Hibernate提供了對關(guān)系型數(shù)據(jù)庫增刪改成操作
JPAJava Persistence API.JPA通過JDK 5.0注解或XML描述對象-關(guān)系表的映射關(guān)系(只有接口規(guī)范)
Hibernate最流行ORM框架底桂,通過對象-關(guān)系映射配置,可以完全脫離底層SQL
MyBatis本是apache的一個(gè)開源項(xiàng)目 iBatis惧眠,支持普通 SQL查詢籽懦,存儲(chǔ)過程和高級(jí)映射的優(yōu)秀持久層框架
Apache DBUtils 、Spring JDBCTemplate
持久化技術(shù)有哪些氛魁?按封裝程序由高到低排列
Hibernate>mybatis>spring jdbcTemplate ,dbutils > jdbc
2暮顺、Hibernate的優(yōu)點(diǎn)
Hibernate對JDBC訪問數(shù)據(jù)庫的代碼做了封裝,大大簡化了數(shù)據(jù)訪問層繁瑣的重復(fù)性代碼
Hibernate是一個(gè)基于jdbc的主流持久化框架秀存,是一個(gè)優(yōu)秀的orm實(shí)現(xiàn)捶码,它很大程度的簡化了dao層編碼工作
Hibernate使用Java的反射機(jī)制,而不是字節(jié)碼增強(qiáng)程序類實(shí)現(xiàn)透明性
Hibernate的性能非常好或链,因?yàn)樗且粋€(gè)輕量級(jí)框架惫恼。映射的靈活性很出色。它支持很多關(guān)系型數(shù)據(jù)庫澳盐,從一對一到多對多的各種復(fù)雜關(guān)系祈纯。
Hibernate本身性能不是很好,存在很多優(yōu)化手段(一級(jí)緩存叼耙、二級(jí)緩存腕窥、查詢緩存、抓取策略)
3筛婉、Hibernate準(zhǔn)備工作
1.準(zhǔn)備hibernate3.x的開發(fā)包
開發(fā)包文件結(jié)構(gòu)
lib文件夾內(nèi)容
補(bǔ)充:log4j(log for java) 用于記錄日志
Log4j的主要作用是解放程序員簇爆,避免程序員去操作IO流。
什么是日志爽撒?
用文本的方式將軟件操作過程中所發(fā)生的一系列操作全部記錄下來
如何學(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對象(好比數(shù)據(jù)庫連接池)
3.得到Session對象(好比數(shù)據(jù)庫連接Connection)
4.開啟事務(wù)
5.執(zhí)行CRUD操作
6.提交或回滾事務(wù)
7.關(guān)閉資源(session關(guān)閉 sessionFactory關(guān)閉 )