三大框架hibernate入門_第1頁
三大框架hibernate入門_第2頁
三大框架hibernate入門_第3頁
三大框架hibernate入門_第4頁
三大框架hibernate入門_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

北京傳智播客教育hibernate(入門)講師:趙君北京傳智播客教育

ORM概述對(duì)象數(shù)據(jù)到關(guān)系數(shù)據(jù)映射的規(guī)則/框架/工具。ORM的優(yōu)點(diǎn):1.完全面向?qū)ο蟮木幊趟枷?,無SQL出現(xiàn).2.減少代碼編寫,提高工作效率.3.提高訪問數(shù)據(jù)庫的性能,降低訪問數(shù)據(jù)庫的頻率.4.具有獨(dú)立性,發(fā)生變化時(shí),不會(huì)影響上層的實(shí)現(xiàn).北京傳智播客教育

Hibernate概述Hibernate是什么?面向java環(huán)境的對(duì)象/關(guān)系數(shù)據(jù)庫映射框架/工具。1.開源免費(fèi)的持久層框架.2.ORM(Object/RelationalMapping)實(shí)現(xiàn)之一,建立面向?qū)ο蟮挠蚰P秃完P(guān)系數(shù)據(jù)之間的映射.3.對(duì)JDBC進(jìn)行復(fù)雜封裝,負(fù)責(zé)java對(duì)象的持久化(CURD).4.在分層結(jié)構(gòu)中處于持久化層,封裝對(duì)數(shù)據(jù)庫的訪問細(xì)節(jié),使業(yè)務(wù)邏輯層更專注于實(shí)現(xiàn)業(yè)務(wù)邏輯北京傳智播客教育

Hibernate概述為什么要用Hibernate?

1、Hibernate對(duì)JDBC訪問數(shù)據(jù)庫的代碼做了封裝,動(dòng)態(tài)產(chǎn)生SQL, 大大簡(jiǎn)化了數(shù)據(jù)訪問層繁瑣的重復(fù)性代碼。

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

3、Hibernate使用java的反射機(jī)制增強(qiáng)程序類實(shí)現(xiàn)透明性

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

北京傳智播客教育

Hibernate概述Hibernate優(yōu)點(diǎn)?

1、開源并且免費(fèi),方便需要時(shí)研究,改寫源碼,進(jìn)行功能的定制

2、簡(jiǎn)單,避免引用過多復(fù)雜問題,進(jìn)行輕量級(jí)封裝,容易調(diào)試3、具有可擴(kuò)展性,API開放,根據(jù)需要擴(kuò)展4、穩(wěn)定的性能,開源社區(qū),團(tuán)體,公司和個(gè)人的廣泛支持

5、文檔豐富,齊全,目前依然不斷更新,維護(hù)中北京傳智播客教育Hibernate應(yīng)用開發(fā)方式北京傳智播客教育Hibernate入門案例Hibernate關(guān)系數(shù)據(jù)庫Customer類Service類對(duì)象關(guān)系映射文件HibernateAPIHibernate配置文件customers表北京傳智播客教育Hibernate入門1創(chuàng)建應(yīng)用工程引入相關(guān)的jar包*hibernate的相關(guān)jar包

hibernate-distribution-3.5.6-Final\lib\required\*.jar

hibernate-distribution-3.5.6-Final\hibernate3.jar

hibernate-annotations-3.4.0.GA\lib\test\slf4j-log4j12.jarhibernate-annotations-3.4.0.GA\lib\test\log4j.jar*mysql的驅(qū)動(dòng)jar包

mysql-connector-java-5.1.7-bin.jar

北京傳智播客教育Hibernate入門一個(gè)語言轉(zhuǎn)換工具,Hibernate利用它實(shí)現(xiàn)HQL到SQL的轉(zhuǎn)換collectionsApache的工具集,用來增強(qiáng)Java對(duì)集合的處理能力dom4jXML解析器核心包代碼生成工具,Hibernate用它在運(yùn)行時(shí)動(dòng)態(tài)Java類標(biāo)準(zhǔn)的JAVA事務(wù)處理接口hibernate使用的一個(gè)日志系統(tǒng)北京傳智播客教育Hibernate入門2創(chuàng)建表和對(duì)應(yīng)的JavaBean持久化類北京傳智播客教育Hibernate入門3創(chuàng)建對(duì)象-關(guān)系映射文件Hibernate采用XML格式的文件來指定對(duì)象和關(guān)系數(shù)據(jù)之間的映射.在運(yùn)行時(shí)Hibernate將根據(jù)這個(gè)映射文件來生成各種SQL語句映射文件的擴(kuò)展名為.hbm.xml這里Customer.hbm.xml文件property元素:設(shè)定持久化類的屬性和表字段映射name屬性:指定持久化類的屬性的名字column屬性:指定表中字段的名稱type屬性指定Hibernate映射類型Hibernate映射類型是java類型與SQL類型的橋梁注:該映射文件的規(guī)范在org.hibernate.hibernate-mapping-3.0.dtd文件中北京傳智播客教育Hibernate入門4.創(chuàng)建Hibernate配置文件,Hibernate從其配置文件中讀取和數(shù)據(jù)庫連接的有關(guān)信息,這個(gè)文件應(yīng)該位于應(yīng)用的classpath下.

注:該映射文件的規(guī)范在org.hibernate.hibernate-configuration-3.0.dtd文件中北京傳智播客教育Hibernate入門5.加載xml文件,創(chuàng)建sessionFactory北京傳智播客教育Hibernate入門java、hibernate、sql類型對(duì)應(yīng)關(guān)系Java類型Hibernate類型Sql類型java.lang.Stringstringvarchar(20)java.lang.IntegerintegerIntcharcharactercharbooleanbooleanbitjava.lang.StringtextCLOBbyte[]binaryBLOBjava.sql.DatedateDATEjava.sql.TimeStamptimestampTIMESTAMP北京傳智播客教育Hibernate入門北京傳智播客教育HibernateAPI簡(jiǎn)介-Configuration類Configuration類負(fù)責(zé)管理Hibernate的配置信息。包括如下內(nèi)容:Hibernate運(yùn)行的底層信息:數(shù)據(jù)庫的URL、用戶名、密碼、JDBC驅(qū)動(dòng)類,數(shù)據(jù)庫Dialect,數(shù)據(jù)庫連接池等(對(duì)應(yīng)hibernate.cfg.xml

文件)。持久化類與數(shù)據(jù)表的映射關(guān)系(*.hbm.xml

文件)創(chuàng)建Configuration的兩種方式屬性文件(src/perties):

Configurationcfg=newConfiguration();Xml文件(src/hibernate.cfg.xml)推薦

Configurationcfg=newConfiguration().configure();

Configurationcfg=newConfiguration().configure(“目錄”);北京傳智播客教育HibernateAPI簡(jiǎn)介-SessionFactory接口Configuration對(duì)象根據(jù)當(dāng)前的配置信息生成SessionFactory對(duì)象。SessionFactory對(duì)象一旦構(gòu)造完畢,即被賦予特定的配置信息(SessionFactory對(duì)象中保存了當(dāng)前的數(shù)據(jù)庫配置信息和所有映射關(guān)系以及預(yù)定義的SQL語句。同時(shí),SessionFactory還負(fù)責(zé)維護(hù)Hibernate的二級(jí)緩存)。

Configurationcfg=newConfiguration().configure();SessionFactorysf=cfg.buildSessionFactory();是線程安全的。SessionFactory是生成Session的工廠:

Sessionsession=sf.openSession();構(gòu)造SessionFactory很消耗資源,一般情況下一個(gè)應(yīng)用中只初始化一個(gè)SessionFactory對(duì)象。北京傳智播客教育HibernateAPI簡(jiǎn)介-Session接口Session是應(yīng)用程序與數(shù)據(jù)庫之間交互操作的一個(gè)單線程對(duì)象,是Hibernate運(yùn)作的中心,所有持久化對(duì)象必須在session的管理下才可以進(jìn)行持久化操作。此對(duì)象的生命周期很短。Session對(duì)象有一個(gè)一級(jí)緩存,顯式執(zhí)行flush之前,所有的持久層操作的數(shù)據(jù)都緩存在session對(duì)象處。相當(dāng)于JDBC中的Connection。持久化類PO與Session關(guān)聯(lián)起來后就具有了持久化的能力。是線程不安全的Session類的方法:取得持久化對(duì)象的方法:get()load()持久化對(duì)象都得保存,更新和刪除:save(),update(),saveOrUpdate(),delete()開啟事務(wù):beginTransaction().管理Session的方法:isOpen(),flush(),clear(),evict(),close()等北京傳智播客教育HibernateAPI簡(jiǎn)介-Transaction接口代表一次原子操作,它具有數(shù)據(jù)庫事務(wù)的概念。所有持久層都應(yīng)該在事務(wù)管理下進(jìn)行,即使是只讀操作。

Transactiont= session.getTransaction();其它常用方法:begin();開始事務(wù)commit():提交相關(guān)聯(lián)的session實(shí)例rollback():撤銷事務(wù)操作北京傳智播客教育Hibernate工作原理Hibernate的工作原理如下:1、應(yīng)用程序先調(diào)用Configuration類,該類讀取Hibernate配置文件及映射文件中的信息,2、并用這些信息生成一個(gè)SessionFactory對(duì)象,3、然后從SessionFactory對(duì)象生成一個(gè)Session對(duì)象,4、并用Session對(duì)象生成Transaction對(duì)象;

A、可通過Session對(duì)象的get(),load(),save(),update(),delete()和saveOrUpdate()等方法對(duì)PO進(jìn)行加載、保存、更新、刪除、等操作;

B、

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論