




已閱讀5頁,還剩23頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
課程目標(biāo): 使學(xué)員掌握并熟練使用框架進(jìn)行企業(yè)項(xiàng)目開發(fā) 學(xué)員要求: 1).學(xué)員必須具備JDBC與數(shù)據(jù)庫知識(shí) 2).學(xué)員具備java基礎(chǔ)知識(shí) 3).學(xué)員具備jsp/servlet知識(shí),第一章 hibernate框架編程準(zhǔn)備知識(shí)講解,1.什么是hibernate 2.為什么需要hibernate 3.在myeclipse中手動(dòng)搭建hibernate開發(fā)環(huán)境 4.使用hibernate對(duì)數(shù)據(jù)庫進(jìn)行增刪改查操作 5.使用myeclipse的集成環(huán)境搭建hibernate開發(fā)環(huán)境 6.hibernate的體系結(jié)構(gòu)概述,1.什么是hibernate: hibernate(冬眠):是訪問數(shù)據(jù)庫的一個(gè)持久層框架,也是一組類相互工作的類的集合,主要是用來對(duì)數(shù)據(jù)進(jìn)行(curd)操作,它的底層封裝了JDBC并且擴(kuò)展了JDBC一些功能;從分層角度來說hibernate位于數(shù)據(jù)訪問層(DAO),hibernate中數(shù)據(jù)訪問層稱為數(shù)據(jù)持久化。,2.為什么需要hibernate: 1)使用hibernate使我們的編程思維更加的OO,其中會(huì)使程序員養(yǎng)成OOA思想,OOP思想,OOD思想。 2)提高生產(chǎn)力,使程序員不再編寫重復(fù)的JDBC代碼,把主要的經(jīng)歷思考在用來實(shí)現(xiàn)業(yè)務(wù)方法上。 3)對(duì)象關(guān)系映射框架除了hibernate之外還有其它的類似框架,例如: Toplink JDO OJB Ibatis 相關(guān)資料可上網(wǎng)查看并(參見spring的官方文檔第一章spring概覽)的ORM模塊。,3.在myeclipse中手動(dòng)搭建hibernate開發(fā)環(huán)境 1)hibernate框架環(huán)境搭建步驟: (1).拷貝Hibernatehibernate-3.2.0.gahibernate- 3.2hiberante3.jar核心jar包到我們web工程地下的lib目錄。 (2).拷貝Hibernatehibernate-3.2.0.gahibernate-3.2lib目錄底下的所有jar包到我們的lib目錄底下。 (3).拷貝Hibernatehibernate-3.2.0.gahibernate-3.2etc目錄下的hibernate.cfg.xml文件到我們工程的src目錄下。 (4).拷貝Hibernatehibernate-3.2.0.gahibernate-3.2egorghibernateauction目錄下的類的映射文件到和自己定義的類的同級(jí)目錄下。(注意別忘了拷貝不同數(shù)據(jù)庫的驅(qū)動(dòng)) (5).分別改寫hibernate.cfg.xml文件和類映射文件。,2).改寫hibernate鏈接數(shù)據(jù)庫hibernate.cfg.xml配置文件的信息 org.hibernate.dialect.MySQLDialect com.mysql.jdbc.Driver jdbc:mysql:/127.0.0.1/hibernate root root ,3).改寫持久化類映射文件的配置信息 ,4).利用hibernate類工具類生成庫表如下: /獲得數(shù)據(jù)庫的鏈接Connection Configuration cfg=new Configuration().configure(); /解析configure()方法源代碼如下; public Configuration configure() throws HibernateException configure( “/hibernate.cfg.xml“ ); return this; /hibernate中SchemaExport是hibernate提供的工具類/主要是用來生產(chǎn)DDL語言 SchemaExport export=new SchemaExport(cfg); export.create(true, true);,4.使用hibernate對(duì)數(shù)據(jù)庫進(jìn)行增刪改查操作 獲得數(shù)據(jù)庫的鏈接 Configuration cfg=new Configuration().configure(); SessionFactory是hibernate生成操作數(shù)據(jù)庫的內(nèi)存鏡像,是session對(duì)象的生產(chǎn)者,我們要獲得session必須通過它獲得。 SessionFactory sessionFactory=cfg.buildSessionFactory(); session是hibernate給我們提供的操作數(shù)據(jù)庫的方法的一個(gè)接口,session接口是介于Connectioin,TransAction; Session session=sessionFactory.openSession(); Hibernate的Session當(dāng)中就有我們操作數(shù)據(jù)庫的方法,如下: /存儲(chǔ)一個(gè)對(duì)象(持久化一個(gè)對(duì)象) public Serializable save(Object object) throws HibernateException; /對(duì)象進(jìn)行修改操作 public void update(Object object) throws HibernateException; /對(duì)象進(jìn)行刪除操作 public void delete(Object object) throws HibernateException; /支持HQL查詢語言 public Query createQuery(String queryString) throws HibernateException; /支持sql查詢 public SQLQuery createSQLQuery(String queryString) throws HibernateException;,Query query=session.createQuery(HQL) Query是hibernate給我們提供的查詢接口。 一下為接口中常用的方法: 1).public Object uniqueResult() throws HibernateException;返回一條記錄數(shù)的方法。 2). public List list() throws HibernateException;通過循環(huán)查詢集合數(shù)據(jù)的方法。 3). public Iterator iterate() throws HibernateException通過迭代器迭代集合中的數(shù)據(jù)。 4). public Query setMaxResults(int maxResults);返回?cái)?shù)據(jù)庫中的最大記錄數(shù)(為分頁的每頁顯示最大記錄數(shù))。 5). public Query setFirstResult(int firstResult);返回?cái)?shù)據(jù)庫中的第一條記錄參數(shù)為從0開始(為分頁的起始記錄數(shù))。,5.使用myeclipse的集成環(huán)境搭建hibernate開發(fā)環(huán)境,6.hibernate的體系結(jié)構(gòu)概述 參見hibernate的官方文檔第二章(hibernate的體系結(jié)構(gòu)),總結(jié),第二章 hibernate對(duì)象關(guān)系映射(ORM)講解,1.Hibernate中對(duì)象關(guān)系映射常用標(biāo)簽講解 2.使用hibernate操作數(shù)據(jù)庫 3.Hibernate的(O/R)mapping理解,1.Hibernate中對(duì)象關(guān)系映射常用標(biāo)簽講解 ,對(duì)象標(biāo)識(shí)ID標(biāo)簽的生成策略講解: 常用的主鍵增長策略: native增長方式:根據(jù)本地?cái)?shù)據(jù)庫所支持的增長方式進(jìn)行增長,由底層數(shù)據(jù)庫來匹配。 increment:主要是由支持這種增長方式的數(shù)據(jù)庫來決定的,mysql數(shù)據(jù)庫就是支持本增長方式, identity:主要是由支持這種增長方式的數(shù)據(jù)庫來決定的,mysql等。 uuid:由hibernate自己生成,(注意:對(duì)象的標(biāo)識(shí)類型必須是字符串)。 assigned:指派,由程序員來自己生成主鍵的增長方式 sequence:主要是由支持這種增長方式的數(shù)據(jù)庫來決定的,oracle數(shù)據(jù)庫。 參見hibernate的官方文檔對(duì)象關(guān)系映射(O/R)5.1章節(jié)。,2.使用hibernate操作數(shù)據(jù)庫,3.Hibernate的(O/R)mapping理解,第三章 hibernate關(guān)聯(lián)關(guān)系映射講解,1 Many-to-One單雙向; 2 One-to-Many單雙向; 3 One-to-One單雙向; 4 Many-to-Many單雙向;,1 Many-to-One: 標(biāo)簽是hibernate用來描述類的引用關(guān)系,many-to-one標(biāo)簽會(huì)在多的一段生成一個(gè)外鍵指向一的一端; ,2 One-to-Many單向: 1)類的寫法: 員工類如下 public class Employees private int eid; private String eName; public int getEid() return eid; 2)類的寫法:部門類如下 public class Dept private int did; private String deptName; private Set emps=new HashSet();,3 )hibernate類的映射文件部門類的寫法 class name=“com.cissst.entity.Dept“ table=“tb_dept“ ,4)hibernate類的映射文件員工類的寫法 ,5)雙向映射就是多對(duì)一和一對(duì)多標(biāo)簽的結(jié)合使用 部門類的寫法 public class Dept private int did; private String deptName; private Set emps=new HashSet(); 員工類的寫法 public class Employees private int eid; private String eName; private Dept dept;,hibernate類的映射文件部門類的寫法 ,hibernate類的映射文件員工類的寫法 ,第四
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 會(huì)員生日特權(quán)與禮品贈(zèng)送創(chuàng)新創(chuàng)業(yè)項(xiàng)目商業(yè)計(jì)劃書
- 醫(yī)療影像診斷設(shè)備機(jī)器人行業(yè)深度調(diào)研及發(fā)展項(xiàng)目商業(yè)計(jì)劃書
- 兒童舞蹈班行業(yè)跨境出海項(xiàng)目商業(yè)計(jì)劃書
- 醫(yī)藥包裝耐候性測試服務(wù)行業(yè)跨境出海項(xiàng)目商業(yè)計(jì)劃書
- 2025年中國滅火器球閥市場調(diào)查研究報(bào)告
- 2025年中國摩托車樁考系統(tǒng)市場調(diào)查研究報(bào)告
- 2025年中國護(hù)士帽市場調(diào)查研究報(bào)告
- 2025年中國平板振動(dòng)夯市場調(diào)查研究報(bào)告
- 2025年中國地暖反射膜市場調(diào)查研究報(bào)告
- 2025年中國響銅樂器市場調(diào)查研究報(bào)告
- GB/T 5683-2024鉻鐵
- 提高靜脈血栓栓塞癥規(guī)范預(yù)防率-醫(yī)務(wù)科-2023.12.7
- 農(nóng)村信訪業(yè)務(wù)培訓(xùn)課件
- 2023年南京市中考?xì)v史試題及答案
- 配電設(shè)備運(yùn)行、維護(hù)、巡回檢查制度范本
- 2024年上海外服招聘筆試參考題庫附帶答案詳解
- 工業(yè)安全教學(xué)課件
- 2024屆安徽省淮南市西部地區(qū)七年級(jí)數(shù)學(xué)第二學(xué)期期末達(dá)標(biāo)測試試題含解析
- 新入職護(hù)士婦產(chǎn)科出科小結(jié)
- 2024年江西吉安市城投公司招聘筆試參考題庫含答案解析
- 第4課《直面挫折+積極應(yīng)對(duì)》第1框《認(rèn)識(shí)挫折+直面困難》【中職專用】《心理健康與職業(yè)生涯》(高教版2023基礎(chǔ)模塊)
評(píng)論
0/150
提交評(píng)論