Mybatis與JDBC和Hibernate的比較

1.概述

MyBatis是最近幾年非常流行的數據訪問層(DAO)框架,能夠簡單高效的實現對數據層訪問

2.Mybatis與JDBC和Hibernate的比較

2.1JDBC

java原生的關係型數據庫訪問方式

  • 每次操作數據庫都需要獲取連接關閉連接,在大量訪問數據庫時,頻繁的開關連接消耗性能。
  • 需要手動編寫sql,有學習成本
  • 查詢出的結果需要手動進行封裝到bean
  • 沒有緩存處理機制
  • sql語句寫死在程序中,需要修改sql必須修改源文件

2.2Hibernate

基於面向對象理念設計的DAO層框架,基本理念就是維護對象到表的映射關係,通過操作對象操作表中的數據,從而可以減少甚至杜絕sql的使用

類 ------------------- 表
對象                  表記錄

傳統的數據庫處理方式,將對象和表記錄存在頻繁的轉換,很麻煩,於是人們想:如果將對象和表記錄先轉換好,封裝到Entity-實體,這樣就表示了它們之間的關係,以後操作對象就被翻譯成對錶的操作,那麼以後就不用關心表,只需要關心對象,程序中只要操作對象就能操作數據庫,從數據庫查詢的數據也會轉換爲對象,可以不用在寫sql----這就是衍生出來的hibernate 。但是hibernate 有很多缺陷,過於理想化) 

缺點如下: 

  • 相對比較沉重,效率不好
  • 當涉及到比較複雜的查詢時Hibernate的操作對象的方式用起來非常麻煩,甚至無法實現,只能用sql操作
  • 底層需要頻繁的拼接sql,產生大量冗餘的sql

2.3MyBatis

是一種半自動對象-表映射關係的DAO層框架,可以自動的進行對象的封裝,但是sql仍然需要自己來寫。

結合了JDBC和Hibernate的優點,可以手寫sql靈活實現數據訪問,自動封裝數據,減少冗餘代碼

mybatis的結構如下:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章