歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Hibernate初步認識

Hibernate初步認識

日期:2017/3/1 9:15:47   编辑:Linux編程

1.簡介

在Java開發領域,基於數據庫應用的設計與實現一直都是面向關系的,Hibernate對象/關系映射ORM框架的出現為Java面向對象開發提供了易於使用的數據持久化解決方案。

  ORM介紹:

  (a).ORM(Object Relation Mapping)中文翻譯成對象關系映射

  (b).ORM是一種為解決“面向對象”與“關系數據庫”存在不匹配的現象而出現的一種技術

  (c).ORM通過使用描述對象和數據庫之間映射的元數據,將java程序中的對象自動持久化到關系數據庫中

  (d).ORM中的映射關系為:面向對象中的(類/對象/屬性)——>面向關系中的(表/表的行(記錄)/表的列(字段))

  (e).ORM實現的思想:將關系數據庫中表的記錄(表的行)映射成對象,以對象的形式展現,程序員可以將對數據庫的操作轉化為對對象的操作

  (f).流行的ORM框架:Hibernate , Ibatis , TopLink , apache OJB

Hibernate將java中的對象與對象的關系映射至關系型數據庫中成表格與表格的關系,起到了java應用和關系數據庫之間的橋梁作用,它封裝了JDBC訪問數據庫的操作,並向上層提供面向對象的數據庫訪問API。

  這裡借用網上一張圖片來說下Hibernate與JDBC之間的區別:

  

2.Hibernate運行過程

(a). 應用程序調用configuration類

(b). configuration類讀取Hibernate配置文件以及映射文件,並用這些信息生成一個SessionFactory類。

(c).從SessionFactory類生成一個Session對象

(d).用Session對象生成一個Transaction對象

(e).可通過Session對象的get(),load(),save(),update(),delete() 和saveorupdate()等方法對POJO類(plain old java object)進行加載,保存,更新,刪除等操作

  POJO介紹:

  (a') POJO (plain old java object)中文譯為:簡單的java對象,普通的java類。

  (b') POJO 實際意義是普通的JavaBeans(最簡單的java類,即一個類只有屬性,然後一大堆set,get和tostring方法)

  (c') POJO 的特點是支持業務邏輯的協助類,不繼承不實現不注釋

  JavaBean介紹:

  (a')JavaBean 是POJODE的Serializable(序列化),它通常是被容器創建(如tomcat),所以它應該具有一個無參數的構造器。同時它也是一種組件技術,不能跨進程訪問。

  (b') JavaBean 是一種JAVA語言寫成的可重用組件。為寫成JavaBean,類必須是具體的和公共的,並且具有無參數的構造器。

  (c')JavaBean 通過提供符合一致性設計模式的公共方法將內部域暴露成員屬性,set和get方法獲取。

  (d')眾所周知,屬性名稱符合這種模式,其他Java 類可以通過自省機制發現和操作這些JavaBean 的屬性。

(f).在查詢情況下,可通過Session對象生成一個Query對象,然後利用Query對象執行查詢操作;若無異常,Transaction對象將提交這些操作到數據庫中,若出現異常,則會回滾。

3.Hibernate項目分層結構:

從比較流行的MVC模式中將Hibernate可以分為如下幾個層次

數據層:指數據庫的設計

DAO層:DAO(Data Access Object)數據訪問對象。DAO層的提出是為了實現把對數據的操作和對業務的操作分離,DAO層直接為上層業務邏輯層提供訪問數據的接口。(DAO層比較重要)

業務邏輯層:這裡把業務邏輯層封裝成一個Service,直接供控制層調用。

控制層和視圖層:可見層,采用jsp,Html,css,ajax等。

Hibernate3.1.2_中文文檔PDF http://www.linuxidc.com/Linux/2016-02/128462.htm

Hibernate學習入門教程 http://www.linuxidc.com/Linux/2015-08/121498.htm

在Hibernate中開啟日志 http://www.linuxidc.com/Linux/2015-07/120499.htm

Hibernate+JUnit測試實體類生成數據庫表 http://www.linuxidc.com/Linux/2015-07/120161.htm

Hibernate整體理解 http://www.linuxidc.com/Linux/2014-07/104405.htm

Hibernate的映射機制 http://www.linuxidc.com/Linux/2014-12/110265.htm

Hibernate 的詳細介紹:請點這裡
Hibernate 的下載地址:請點這裡

Copyright © Linux教程網 All Rights Reserved