1. 什麼是ORM?
對象-關係映射(Object-Relational Mapping,簡稱ORM),物件導向的開發方法是當今企業級應用開發環境中的主流開發方法,關聯式資料庫是企業級應用環境中永久存放資料的主流資料存放區系統。對象和關係資料是業務實體的兩種表現形式,業務實體在記憶體中表現為對象,在資料庫中表現為關係資料。記憶體中的對象之間存在關聯和繼承關係,而在資料庫中,關係資料無法直接表達多對多關聯和繼承關係。因此,對象-關係映射(ORM)系統一般以中介軟體的形式存在,主要實現程式對象到關聯式資料庫資料的映射。 2.為什麼使用ORM?
當我們實現一個應用程式時(不使用O/R Mapping),我們可能會寫特別多資料訪問層的代碼,從資料庫儲存、刪除、讀取對象資訊,而這些代碼都是重複的。而使用ORM則會大大減少重複性代碼。對象關係映射(Object Relational Mapping,簡稱ORM),主要實現程式對象到關聯式資料庫資料的映射。 3.對象-關係映射解釋:
A . 簡單:ORM以最基本的形式建模資料。比如ORM會將MySQL的一張表映射成一個Java類(模型),表的欄位就是這個類的成員變數
B . 精確:ORM使所有的MySQL資料表都按照統一的標準精確地映射成java類,使系統在代碼層面保持準確統一
C .易懂:ORM使資料庫結構文檔化。比如MySQL資料庫就被ORM轉換為了java程式員可以讀懂的java類,java程式員可以只把注意力放在他擅長的java層面(當然能夠熟練掌握MySQL更好)
D.易用:ORM包含對持久類對象進行CRUD操作的API,例如create(), update(), save(), load(), find(), find_all(), where()等,也就是講sql查詢全部封裝成了程式設計語言中的函數,通過函數的鏈式組合產生最終的SQL語句。通過這種封裝避免了不規範、冗餘、風格不統一的SQL語句,可以避免很多人為Bug,方便編碼風格的統一和後期維護。
4. ORM的優缺點:
優點:
1)提高開發效率,降低開發成本
2)使開發更加對象化
3)可移植
4)可以很方便地引入資料緩衝之類的附加功能
缺點:
1)自動化進行關聯式資料庫的映射需要消耗系統效能。其實這裡的效能消耗還好啦,一般來說都可以忽略之。
2)在處理多表聯查、where條件複雜之類的查詢時,ORM的文法會變得複雜。
5. 常用架構:
(1)Hibernate 全自動 需要寫hql語句(2)iBATIS 半自動 自己寫sql語句,可操作性強,小巧