Java開發必看ORM概念大全

一、ORM概念

對象關係映射(Object Relational Mapping,簡稱ORM)是通過使用描述對象和數據庫之間映射的元數據,將面嚮對象語言程序中的對象自動持久化到關係數據庫中。本質上就是將數據從一種形式轉換到另外一種形式。 這也同時暗示着額外的執行開銷;然而,如果ORM作爲一種中間件實現,則會有很多機會做優化,而這些在手寫的持久層並不存在。 更重要的是用於控制轉換的元數據需要提供和管理;但是同樣,這些花費要比維護手寫的方案要少;而且就算是遵守ODMG規範的對象數據庫依然需要類級別的元數據。

二、簡述ORM

ORM(Object Relational Mapping)對象關係映射、使用對象操作數據庫的設計思想。
在操作數據庫之前,先把數據表與實體類關聯起來。然後通過實體類的對象操作(增刪改查)數據庫表,這個就是ORM的行爲!

三、ORM的作用

在關係型數據庫和對象之間作一個映射,這樣,我們在具體的操作數據庫的時候,就不需要再去和複雜的SQL語句打交道,只要像平時操作對象一樣操作它就可以了 。

四、ORM的原理

Java中ORM的原理: 先說ORM的實現原理,其實,要實現JavaBean的屬性到數據庫表的字段的映射,任何ORM框架不外乎是讀某個配置文件把JavaBean的屬 性和數據庫表的字段自動關聯起來,當從數據庫Query時,自動把字段的值塞進JavaBean的對應屬性裏,當做INSERT或UPDATE時,自動把 JavaBean的屬性值綁定到SQL語句中。

五、常用的Java ORM框架

  1. Hiberante 面向對象的ORM,學習成本比較高
  2. Mybatis 半自動orm框架,需要自己寫sql, 方便sql與java代碼分離
  3. Bee, 一個新的ORM框架, 同時具體Hiberante和Mybatis的優點。既可像Hibernate一樣通過操作對象來操作數據庫,也可以像Mybatis一樣靈活寫sql

六、持久化是什麼?

ORM概念中提到了一個知識點:對象自動持久化到關係數據庫中,那我們就來消化一下持久化
狹義的理解:持久化 僅僅指把域對象永久保存到數據庫中;廣義的理解:持久化 包括和數據庫相關的各種操作(如CRUD)。
總結:持久化就是把數據同步保存到數據庫或某些存儲設備中。

七、爲什麼要持久化?

  1. 通過持久化技術可以減少訪問數據庫數據次數,增加應用程序執行速度;
  2. 代碼重用性高,能夠完成大部分數據庫操作;
  3. 鬆散耦合,使持久化不依賴於底層數據庫和上層業務邏輯實現,更換數據庫時只需修改配置文件而不用修改代碼。

八、ORM的缺點

  1. 關係-對象映射的實現是以性能爲代價,方便了開發,犧牲了效率。
  2. 對於複雜的SQL有心無力。
  3. 無法完全屏蔽數據庫底層細節,開發人員仍然要熟悉數據庫底層操作。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章