ORM:Object Relational Mapping,對象關係映射。java
ORM是一種程序技術,用於實現面向對象編程語言裏不一樣類型系統的數據之間的交換,實際上說,它就是建立了一個能夠在編程語言裏面使用的「虛擬對象數據庫」。數據庫
面向對象是從軟件工程基本原則基礎上發展起來,而關係型數據庫則是從數學理論發展起來,它們之間常常有聯繫,爲了解決聯繫時數據不匹配的現象,ORM技術應運而生。編程
面向對象的開發方法是當今企業級應用開發環境中的主流開發方法,關係型數據庫是企業級應用環境中永久存放數據的主流數據存儲系統。
mybatis
當咱們開發一個應用程序的時候,咱們可能會寫很多數據訪問層的代碼,用來從數據庫保存、刪除、讀取對象信息等,這些代碼寫起來有不少是重複的。--這是原有的技術app
數據訪問層:即DAL,Data Access Layer,它又稱爲DAO層。有時候也稱爲持久層,其主要功能是負責數據庫的訪問,即對數據庫表的select、insert、update、delete等操做。DAL的主要職責是:讀取數據和傳遞數據。框架
--如今使用新技術編程語言
引入O/R Mapping,即對象/關係映射。實際上O/R Mapping會爲咱們生成DAL。當咱們使用O/R Mapping保存/刪除/讀取對象時,O/R Mapping會爲咱們生成SQL,咱們只須要關心對象就好。工具
通常的ORM包括如下四個部分
優化
1>一個對持久類對象進行CRUD操做的APIspa
2>一個API用來規定與 類和屬性相關的查詢
3>一個規定Mapping的工具
4>一種技術可讓ORM的實現同事務對象一塊兒進行DIRTYCHECKING以及其它的優化操做。
衆多廠商和開源社區都提供了持久層框架的實現,java系列裏面比較出名的有:hibernate和ibatis(現更名mybatis)。
映射模式
採用方法:將UML模型中的各類元素經過轉換,保存爲數據庫模式。
一、數據類型映射模式
1-1簡單數據類型模式:創建UML和關係型數據庫中簡單數據類型的映射表
1-2枚舉數據類型模式:每種枚舉類型對應一個表,只有一個列表示枚舉值
1-3基於類的數據類型模式:使用外鍵約束,將基礎列與 基於類的類型實例 相關聯。
二、類映射模型
每一個類對應一個表,單值屬性、多值屬性、繼承關係均可以使用下述方法映射
2-1 單值屬性模式:
2-2 多值屬性模式:每一個多值屬性映射成一個獨立的表,使用外鍵鏈接到類所對應的表上。