Hibernate与Mybatis的区别与联系

1 简单简介

    1.1     Hibernate 框架 
        Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了很是轻量级的对象封装,创建对象与数据库表的映射。是一个全自动的、彻底面向对象的持久层框架。
    1.2     Mybatis框架
        Mybatis是一个开源对象关系映射框架,原名:ibatis,2010年由谷歌接管之后改名。是一个半自动化的持久层框架。

2 二者区别

     2.1 开发方面
        在项目开发过程中,就速度而言:
            hibernate开发中,sql语句已经被封装,直接可使用,加快系统开发;
            Mybatis 属于半自动化,sql须要手工完成,稍微繁琐;
        可是,凡事都不是绝对的,若是对于庞大复杂的系统项目来讲,发杂语句较多,选择hibernate 就不是一个好方案。
     2.2 sql优化方面
        Hibernate 自动生成sql,有些语句较为繁琐,会多消耗一些性能;
        Mybatis 手动编写sql,能够避免不须要的查询,提升系统性能;
     2.3 对象管理比对
        Hibernate 是完整的对象-关系映射的框架,开发工程中,无需过多关注底层实现,只要去管理对象便可;
        Mybatis 须要自行管理 映射关系;
    2.4 缓存方面    

相同点:sql

Hibernate和Mybatis的二级缓存除了采用系统默认的缓存机制外,均可以经过实现你本身的缓存或为其余第三方缓    存方案,建立适配器来彻底覆盖缓存行为。数据库

不一样点:缓存

Hibernate的二级缓存配置在SessionFactory生成的配置文件中进行详细配置,而后再在具体的表-对象映射中配置是那种缓存。框架

MyBatis的二级缓存配置都是在每一个具体的表-对象映射中进行详细配置,这样针对不一样的表能够自定义不一样的缓存机制。而且Mybatis能够在命名空间中共享相同的缓存配置和实例,经过Cache-ref来实现。性能


 

比较:优化

          Hibernate 具备良好的管理机制,用户不须要关注SQL,若是二级缓存出现脏数据,系统会保存,;
           Mybatis 在使用的时候要谨慎,避免缓存CAche 的使用。

Hibernate优点

  1. Hibernate的DAO层开发比MyBatis简单,Mybatis须要维护SQL和结果映射。hibernate

  2. Hibernate对对象的维护和缓存要比MyBatis好,对增删改查的对象的维护要方便。开放源代码

  3. Hibernate数据库移植性很好,MyBatis的数据库移植性很差,不一样的数据库须要写不一样SQL。对象

  4. Hibernate有更好的二级缓存机制,可使用第三方缓存。MyBatis自己提供的缓存机制不佳。开发

Mybatis优点

  1. MyBatis能够进行更为细致的SQL优化,能够减小查询字段。

  2. MyBatis容易掌握,而Hibernate门槛较高。

一句话总结

Mybatis:小巧、方便、高效、简单、直接、半自动化

Hibernate:强大、方便、高效、复杂、间接、全自动化

转载 千万之路刚开始
相关文章
相关标签/搜索