對象關係映射(英語:Object Relational Mapping,簡稱ORM,或O/RM,或O/R mapping),是一種程序設計技術,用於實現面向對象編程語言裏不同類型系統的數據之間的轉換。從效果上說,它其實是創建了一個可在編程語言裏使用的“虛擬對象數據庫”。
JAVAORM主流的有一下幾種框架:
數據持久層框架——Hibernate
Hibernate是一種Java語言下的對象關係映射解決方案。 它是使用GNU寬通用公共許可證發行的自由、開源的軟件。它爲面向對象的領域模型到傳統的關係型數據庫的映射,提供了一個使用方便的框架。
數據持久層框架——IBATIS
iBATIS一詞來源於“internet”和“abatis”的組合,是一個由Clinton Begin在2001年發起的開放源代碼項目。最初側重於密碼軟件的開發,現在是一個基於Java的持久層框架。iBATIS提供的持久層框架包括SQL Maps和Data Access Objects(DAO),同時還提供一個利用這個框架開發的JPetStore實例。
iBATIS 目前提供了三種語言實現的版本,包括:Java、.NET以及Ruby。下面是iBATIS的架構圖
JAVA數據持久層框架——MyBATIS
MyBatis 的前身就是iBatis。是一個數據持久層(ORM)框架。
JDBC框架——SimpleJDBC
SimpleJDBC是一個用於簡化JDBC代碼的簡單框架,需Spring集成。SimpleJDBC讓你用簡單的SQL語句完成增刪改查,同時支持強類型和Java泛型,僅需注入一個Db實例。
設計思想
契約優於配置,表名和類名一致,字段名和屬性名一致;
不需編寫DAO,爲一兩行SQL編寫一個DAO方法不值;
簡單的SQL語句,而不是經過ORM改造的HQL;
沒有Attach/Detach狀態,均爲原始Bean無CGLIB代理;
沒有一級/二級Cache,Cache應當用memcached,用不上memcached則說明壓力小到根本無需Cache;
外鍵也映射到簡單字段,而非對象,不支持一對多或多對一的級聯查詢,永遠不用擔心查出額外對象;
泛型和強類型支持,有SQL語句,但無JDBC代碼;
不支持join等複雜查詢,必須增加表的冗餘以便使用簡單查詢。
哪些項目無法使用SimpleJdbc
沒有用MySQL做爲數據庫;
沒有用Spring;
使用了EAR而不是WAR;
必須使用Join等複雜查詢;
在遺留數據庫上開發。
以上說明該項目不Simple,因此無法使用SimpleJdbc。
JAVA的ORM框架——JOOQ
jOOQ 高效的合併了複雜SQL、類型安全、源碼生成、Active Records、存儲過程以及高級數據類型的 Java 類庫。