hibernate與mybatis的區別和應用場景


mybatis 與 hibernate 的區別和應用場景(轉)

1    Hibernate : 標准的ORM(對象關系映射) 框架;

      不要用寫sql, sql 自動語句生成;

       使用Hibernate 對sql 進行優化,修改比較困難

      

應用場景: 試用需求,變化固定中小型項目;ERP,ORM,OA

 

2   mybatis: 程序員自己編寫sql, sql 修改,優化比較自由。

    mybatis 是一個不完全的ORM 框架(部分), mybatis 存在

   映射關系(輸入,輸出映射);

 

應用場景: 除了hibernate 的場景,主要應用需求項目較多的場景,

               互聯網項目; 敏捷開發。

               當希望對象的持久化對應用程序完全透明是,不適合使用mybatis
               當數據庫有移植需求或需要支持多種數據庫時,不適合使用mybatis

 

 

映射關系描述:

hibernate: 對數據庫結構提供了較為完整的封裝,hibernate O/R Mapping實現了POJO 和數據庫表之間的映射,以及SQL 的自動生成和執行。

只需定義好了POJO 到數據庫表的映射關系,即可通過提供的方法完成持久層操作。

不需要對SQL 的熟練掌握, 會根據制定的存儲邏輯,自動生成對應的SQL 並調用JDBC 接口加以執行。

mybatis:POJO SQL之間的映射關系。然后通過映射配置文件,將SQL所需的參數,以及返回的結果字段映射到指定POJO。 相對O/R”而言,iBATIS 是一種“Sql Mapping”的ORM實現。

數據庫的無關性:

hibernate 的 具體數據只需要利用xml 進行關聯; HQL 語句與數據庫無關

mybatis 更接近sql ,因此對數據庫的依賴較多。

 

 

Mybatis優勢

    MyBatis可以進行更為細致的SQL優化,可以減少查詢字段。
    MyBatis容易掌握,而Hibernate門檻較高。

Hibernate優勢

    Hibernate的DAO層開發比MyBatis簡單,Mybatis需要維護SQL和結果映射。
    Hibernate對對象的維護和緩存要比MyBatis好,對增刪改查的對象的維護要方便。
    Hibernate數據庫移植性很好,MyBatis的數據庫移植性不好,不同的數據庫需要寫不同SQL。
    Hibernate有更好的二級緩存機制,可以使用第三方緩存。MyBatis本身提供的緩存機制不佳


免責聲明!

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



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