所謂的持久層框架?ORM框架?以及Hibernate和Mybatis區別?


ORM框架?

Object Relational Mapping,對象-關系映射。

項目中的業務實體有兩種表現形式:對象和關系數據,即在內存中表現為對象,在數據庫中表現為關系數據。

 

為什么需要ORM框架?

ORM框架是對象關系映射,那為什么要映射mapping?

因為對象之間可以存在關聯和繼承關系,但是在數據庫中,關系數據無法表達多對多關聯和繼承關系。(ps:在數據庫原理中,會把邏輯上的多對多轉換為多個一對關系才能實現)因此,對象和關系(業務實體的兩種表現形式)想要映射正確,項目系統一般以中間件的形式,即持久層框架。

 

Hibernate?

Hibernate是一個開源的對象關系映射框架。

它對jdbc進行了非常輕量級的對象封裝,將pojo(普通的Java對象)與數據庫表建立映射關系,是一個全自動的ORM框架,甚至自動生成SQL語句,自動執行。

因此,程序員可以隨心所有地使用對象編程思維來操縱數據庫。

Hibernate特點:

  1. Hibernate通過修改一個“持久化”對象的屬性,從而修改數據庫表中對應的記錄數據
  2. 提供線程和進程兩個級別的緩存提升應用程序性能
  3. 有豐富的映射方式將Java對象之間的關系(POJO)轉換為數據庫表之間的關系
  4. 屏蔽不同數據庫實現之間的差異。在Hibernate中只需通過“方言”的形式指定當前使用的數據庫,就可以根據底層數據庫的實際情況生成適合的SQL語句
  5. 非侵入式。Hibernate不要求持久化類實現任何接口或繼承任何類,POJO即可

a)       比較Mybatis,Mybatiis最簡單安裝只需要2個jar包+幾個sql映射文件

 

Mybatis?

Mybatis是一款優秀的持久層框架。

支持定制化SQL、存儲過程以及高級映射。

Mybatis避免了幾乎所有的JDBC代碼和手動設置參數以及獲取結果集。

Mybatis可以使用簡單的xml或注解來配置和映射原生信息,將接口和JAVA的POJOs映射成數據庫的記錄

Mybaits特點:

  1. 簡單易學。沒有任何第三方依賴,最簡單只需要2個jar包+幾個sql映射文件,通過文檔和源代碼,即可比較完全的掌握它的設計思路和實現
  2. 靈活。不會對應用程序或者數據庫的現有設計強加任何影響。Sql寫在xml里面,便於統一管理和優化。通過sql基本上可以實現我們不使用數據訪問框架可以實現的所有功能。
  3. 解除sql與程序代碼的耦合。通過提供DAL層,將業務邏輯和數據訪問邏輯分離,使系統的設計更清晰,更易維護,更易單元測試。
  4. 提供映射標簽,支持對象與數據庫的ORM字段關系映射
  5. 提供對象關系映射標簽,支持對象關系組建維護
  6. 提供xml標簽,支持編寫動態sql


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM