- EJB JPA數(shù)據(jù)庫(kù)持久層開(kāi)發(fā)實(shí)踐詳解
- 馮曼菲等編著
- 540字
- 2018-12-29 15:14:01
1.4 對(duì)象關(guān)系映射(ORM)
在前面的幾節(jié)中,讀者已經(jīng)了解了JPA是對(duì)象關(guān)系映射ORM的框架。那么什么是ORM呢?ORM與傳統(tǒng)的Java持久化技術(shù)相比,有何優(yōu)勢(shì)呢?
1.4.1 什么是對(duì)象關(guān)系映射
對(duì)象關(guān)系映射(Object Relational Mapping,ORM)是一種為了解決面向?qū)ο笈c關(guān)系數(shù)據(jù)庫(kù)存在的互不匹配的現(xiàn)象的技術(shù)。這里的“O”表示的是對(duì)象,“R”表示的是關(guān)系型數(shù)據(jù)庫(kù),“M”表示的是對(duì)象和關(guān)系型數(shù)據(jù)庫(kù)之間的聯(lián)系。
下面舉一個(gè)具體的實(shí)例來(lái)說(shuō)明,有一個(gè)客戶(hù)類(lèi)Customer,有屬性id,姓名name和年齡age。有一個(gè)表tb_customer,有三個(gè)列,分別為id、name和age。那么如何將這兩者自動(dòng)關(guān)聯(lián)起來(lái)呢,這就需要對(duì)象關(guān)系映射,也就是JPA所要解決的問(wèn)題。這樣當(dāng)進(jìn)行ORM后,表中的一條記錄可以映射為類(lèi)的實(shí)例(對(duì)象),如圖1-8所示。

圖1-8 ORM示例
在“ORM”中,最重要的就是“R”,一旦將對(duì)象和關(guān)系型數(shù)據(jù)庫(kù)關(guān)聯(lián)起來(lái),那么操作對(duì)象就自動(dòng)地操作了數(shù)據(jù)庫(kù),而避免寫(xiě)大量的SQL語(yǔ)句。
1.4.2 對(duì)象關(guān)系映射模式
上面的例子中,只涉及一個(gè)表和類(lèi),是最簡(jiǎn)單的一對(duì)一映射。在ORM中,還有更為復(fù)雜的映射類(lèi)型,比如一對(duì)多、多對(duì)多映射等。無(wú)論是哪種類(lèi)型的映射,都遵循以下幾個(gè)基本原則。
● 類(lèi)通常映射為表。
● 類(lèi)中的屬性通常映射為表中的一列。
● 如果類(lèi)的屬性如集合類(lèi),則會(huì)涉及多個(gè)表的關(guān)聯(lián)映射。
有關(guān)各種映射模式的應(yīng)用,將在本書(shū)的以下章節(jié)中詳細(xì)講述,這里只簡(jiǎn)單介紹一下。
- 計(jì)算機(jī)應(yīng)用
- 輕松學(xué)PHP
- 快學(xué)Flash動(dòng)畫(huà)百例
- Storm應(yīng)用實(shí)踐:實(shí)時(shí)事務(wù)處理之策略
- Enterprise PowerShell Scripting Bootcamp
- 基于單片機(jī)的嵌入式工程開(kāi)發(fā)詳解
- Practical Big Data Analytics
- 激光選區(qū)熔化3D打印技術(shù)
- 氣動(dòng)系統(tǒng)裝調(diào)與PLC控制
- ESP8266 Robotics Projects
- Working with Linux:Quick Hacks for the Command Line
- 智能+:制造業(yè)的智能化轉(zhuǎn)型
- Practical AWS Networking
- iLike就業(yè)SQL多功能教材
- Photoshop CS6白金手冊(cè)