hibernate技術(shù)課程講解.ppt_第1頁
hibernate技術(shù)課程講解.ppt_第2頁
hibernate技術(shù)課程講解.ppt_第3頁
hibernate技術(shù)課程講解.ppt_第4頁
hibernate技術(shù)課程講解.ppt_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

課程目標(biāo): 使學(xué)員掌握并熟練使用框架進行企業(yè)項目開發(fā) 學(xué)員要求: 1).學(xué)員必須具備JDBC與數(shù)據(jù)庫知識 2).學(xué)員具備java基礎(chǔ)知識 3).學(xué)員具備jsp/servlet知識,第一章 hibernate框架編程準(zhǔn)備知識講解,1.什么是hibernate 2.為什么需要hibernate 3.在myeclipse中手動搭建hibernate開發(fā)環(huán)境 4.使用hibernate對數(shù)據(jù)庫進行增刪改查操作 5.使用myeclipse的集成環(huán)境搭建hibernate開發(fā)環(huán)境 6.hibernate的體系結(jié)構(gòu)概述,1.什么是hibernate: hibernate(冬眠):是訪問數(shù)據(jù)庫的一個持久層框架,也是一組類相互工作的類的集合,主要是用來對數(shù)據(jù)進行(curd)操作,它的底層封裝了JDBC并且擴展了JDBC一些功能;從分層角度來說hibernate位于數(shù)據(jù)訪問層(DAO),hibernate中數(shù)據(jù)訪問層稱為數(shù)據(jù)持久化。,2.為什么需要hibernate: 1)使用hibernate使我們的編程思維更加的OO,其中會使程序員養(yǎng)成OOA思想,OOP思想,OOD思想。 2)提高生產(chǎn)力,使程序員不再編寫重復(fù)的JDBC代碼,把主要的經(jīng)歷思考在用來實現(xiàn)業(yè)務(wù)方法上。 3)對象關(guān)系映射框架除了hibernate之外還有其它的類似框架,例如: Toplink JDO OJB Ibatis 相關(guān)資料可上網(wǎng)查看并(參見spring的官方文檔第一章spring概覽)的ORM模塊。,3.在myeclipse中手動搭建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目錄下的類的映射文件到和自己定義的類的同級目錄下。(注意別忘了拷貝不同數(shù)據(jù)庫的驅(qū)動) (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對數(shù)據(jù)庫進行增刪改查操作 獲得數(shù)據(jù)庫的鏈接 Configuration cfg=new Configuration().configure(); SessionFactory是hibernate生成操作數(shù)據(jù)庫的內(nèi)存鏡像,是session對象的生產(chǎn)者,我們要獲得session必須通過它獲得。 SessionFactory sessionFactory=cfg.buildSessionFactory(); session是hibernate給我們提供的操作數(shù)據(jù)庫的方法的一個接口,session接口是介于Connectioin,TransAction; Session session=sessionFactory.openSession(); Hibernate的Session當(dāng)中就有我們操作數(shù)據(jù)庫的方法,如下: /存儲一個對象(持久化一個對象) public Serializable save(Object object) throws HibernateException; /對象進行修改操作 public void update(Object object) throws HibernateException; /對象進行刪除操作 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);返回數(shù)據(jù)庫中的最大記錄數(shù)(為分頁的每頁顯示最大記錄數(shù))。 5). public Query setFirstResult(int firstResult);返回數(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對象關(guān)系映射(ORM)講解,1.Hibernate中對象關(guān)系映射常用標(biāo)簽講解 2.使用hibernate操作數(shù)據(jù)庫 3.Hibernate的(O/R)mapping理解,1.Hibernate中對象關(guān)系映射常用標(biāo)簽講解 ,對象標(biāo)識ID標(biāo)簽的生成策略講解: 常用的主鍵增長策略: native增長方式:根據(jù)本地數(shù)據(jù)庫所支持的增長方式進行增長,由底層數(shù)據(jù)庫來匹配。 increment:主要是由支持這種增長方式的數(shù)據(jù)庫來決定的,mysql數(shù)據(jù)庫就是支持本增長方式, identity:主要是由支持這種增長方式的數(shù)據(jù)庫來決定的,mysql等。 uuid:由hibernate自己生成,(注意:對象的標(biāo)識類型必須是字符串)。 assigned:指派,由程序員來自己生成主鍵的增長方式 sequence:主要是由支持這種增長方式的數(shù)據(jù)庫來決定的,oracle數(shù)據(jù)庫。 參見hibernate的官方文檔對象關(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)簽會在多的一段生成一個外鍵指向一的一端; ,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)雙向映射就是多對一和一對多標(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等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論