Hibernate ORM功能概述
Hibernate有很多值得學(xué)習(xí)的地方,這里我們主要介紹Hibernate ORM功能,包括介紹什么是Hibernate和ORM的實(shí)現(xiàn)原理等方面。
1.什么是ORM
ORM的全稱(chēng)是Object Relational Mapping,即對(duì)象關(guān)系映射。它的實(shí)現(xiàn)思想就是將關(guān)系數(shù)據(jù)庫(kù)中表的數(shù)據(jù)映射成為對(duì)象,以對(duì)象的形式展現(xiàn),這樣開(kāi)發(fā)人員就可以把對(duì)數(shù)據(jù)庫(kù)的操作轉(zhuǎn)化為對(duì)這些對(duì)象的操作。因此它的目的是為了方便開(kāi)發(fā)人員以面向?qū)ο蟮乃枷雭?lái)實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的操作。
2.什么是Hibernate
對(duì)于Hibernate的稱(chēng)呼有很多,比如工具、技術(shù)、框架以及解決方案等,這些都可以,重要的是大家要知道它的作用。在這里我習(xí)慣性稱(chēng)它為框架,它是一種能實(shí)現(xiàn)ORM的框架。能實(shí)現(xiàn)ORM這個(gè)功能的框架有很多,Hibernate可以說(shuō)是這些框架中最流行、最受開(kāi)發(fā)者關(guān)注的,甚至連JBoss公司也把它吸收進(jìn)來(lái),利用它在自己的項(xiàng)目中實(shí)現(xiàn)Hibernate ORM功能。
3.ORM的實(shí)現(xiàn)原理
現(xiàn)在在Java領(lǐng)域大家對(duì)Hibernate的討論很多,比如它的優(yōu)缺點(diǎn)、如何應(yīng)用、錯(cuò)誤如何解決以及把它和Struts/Spring等框架相結(jié)合作為整個(gè)系統(tǒng)的解決方案。在這里我想和大家探討一些更深層次的話題,那就是Hibernate是如何實(shí)現(xiàn)ORM的功能?如果讓我們自己開(kāi)發(fā)一款實(shí)現(xiàn)Hibernate ORM功能的框架需要怎么做?其實(shí)這些問(wèn)題就是圍繞著一個(gè)詞,那就是“映射”,如果我們知道如何實(shí)現(xiàn)這種映射那么我們也能夠開(kāi)發(fā)出自己的一款ORM框架。會(huì)使用Hibernate的開(kāi)發(fā)人員都知道,在使用它實(shí)現(xiàn)Hibernate ORM功能的時(shí)候,主要的文件有:映射類(lèi)(*.java)、映射文件(*.hbm.xml)以及數(shù)據(jù)庫(kù)配置文件(*.properties或*.cfg.xml),它們各自的作用如下。
1).映射類(lèi):它的作用是描述數(shù)據(jù)庫(kù)表的結(jié)構(gòu),表中的字段在類(lèi)中被描述成屬性,將來(lái)就可以實(shí)現(xiàn)把表中的記錄映射成為該類(lèi)的對(duì)象。
2).映射文件:它的作用是指定數(shù)據(jù)庫(kù)表和映射類(lèi)之間的關(guān)系,包括映射類(lèi)和數(shù)據(jù)庫(kù)表的對(duì)應(yīng)關(guān)系、表字段和類(lèi)屬性類(lèi)型的對(duì)應(yīng)關(guān)系以及表字段和類(lèi)屬性名稱(chēng)的對(duì)應(yīng)關(guān)系等。
3).數(shù)據(jù)庫(kù)配置文件:它的作用是指定與數(shù)據(jù)庫(kù)連接時(shí)需要的連接信息,比如連接哪中數(shù)據(jù)庫(kù)、登錄用戶(hù)名、登錄密碼以及連接字符串等。
在這三種主要的文件中,映射類(lèi)為普通Java源文件、映射文件為XML格式、數(shù)據(jù)庫(kù)配置文件為Properties格式或者是XML格式。想理解“映射”首先我們需要知道如何解析這三種文件,即解析XML格式文件、解析Properties格式文件和解析Java類(lèi)文件。
【編輯推薦】