浅析Hibernate映射(一)——基本映射
在說Hibernate映射之前,先下了解下面的概念。
?
對象-關系映射(Object/Relation Mapping,簡稱ORM),是隨著面向對象的軟件開發(fā)方法發(fā)展而產(chǎn)生的,是一種為了解決面向對象與關系數(shù)據(jù)庫存在的互不匹配的現(xiàn)象的技術,本質上就是將數(shù)據(jù)從一種形式轉換到另外一種形式。
?
面向對象的開發(fā)方法是當今企業(yè)級應用開發(fā)環(huán)境中的主流開發(fā)方法,關系數(shù)據(jù)庫是企業(yè)級應用環(huán)境中永久存放數(shù)據(jù)的主流數(shù)據(jù)存儲系統(tǒng)。對象和關系數(shù)據(jù)是業(yè)務實體的兩種表現(xiàn)形式,業(yè)務實體在內存中表現(xiàn)為對象,在數(shù)據(jù)庫中表現(xiàn)為關系數(shù)據(jù)。內存中的對象之間存在關聯(lián)和繼承關系,而在數(shù)據(jù)庫中,關系數(shù)據(jù)無法直接表達多對多關聯(lián)和繼承關系。因此,對象-關系映射(ORM)系統(tǒng)一般以中間件的形式存在,主要實現(xiàn)程序對象到關系數(shù)據(jù)庫數(shù)據(jù)的映射。
簡單的說,ORM是通過使用描述對象和數(shù)據(jù)庫之間映射的元數(shù)據(jù),將java程序中的對象自動持久化到關系數(shù)據(jù)庫中
?
實現(xiàn)ORM的框架很多,其中當屬Hibernate最為流行,下面通過幾篇文章來看一下Hibernate是如何實現(xiàn)ORM的,即Hibernate的幾種映射。
?
Hibernate在實現(xiàn)ORM功能的時候主要用到的文件有:
??? 1、 映射類(*.java):它是描述數(shù)據(jù)庫表的結構,表中的字段在類中被描述成屬性,將來就可以實現(xiàn)把表中的記錄映射成為該類的對象了。
?
??? 2、映射文件(*.hbm.xml):它是指定數(shù)據(jù)庫表和映射類之間的關系,包括映射類和數(shù)據(jù)庫表的對應關系、表字段和類屬性類型的對應關系以及表字段和類屬性名稱的對應關系等。
?
??? 3、 hibernate核心配置文件(*.properties/*.cfg.xml):它指定hibernate的一些核心配置,包含與數(shù)據(jù)庫連接時需要的連接信息,比如連接哪種數(shù)據(jù)庫、登錄數(shù)據(jù)庫的用戶名、登錄密碼以及連接字符串等。映射文件的地址信息也放在這里
?
?
基本映射:
java?對象
關系模型
?
實體類--->表,采用<class>標簽映射
實體類中的普通屬性(不包括集合、自定義類和數(shù)組)------->表字段,采用<property>標簽映射
?
映射類:
[java]?view plaincopyprint?
?
注:
實體類的設計原則:
* 實現(xiàn)無參的默認的構造函數(shù)
* 提供一個標識
* 建議不要使用final修飾實體類(因為采用load延時加載數(shù)據(jù)的時候會繼承實體類生成代理對象)
* 建議為實體類生成getter和setter方法(如果不使用,需要用屬性field標識)
?
?
?
映射文件具體說明:
[html]?view plaincopyprint?
?
注意:如果實體類的名稱或實體類中屬性的名稱和數(shù)據(jù)庫關鍵字重復,將會出現(xiàn)問題,可以考慮采用table屬性和column屬性對其進行重新命名
總結
以上是生活随笔為你收集整理的浅析Hibernate映射(一)——基本映射的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: web.xml详细介绍
- 下一篇: Hibernate generator小