zoukankan      html  css  js  c++  java
  • hibernate和mybatis区别

    两者区别

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

    相同点:

    Hibernate和Mybatis的二级缓存除了采用系统默认的缓存机制外,都可以通过实现你自己的缓存或为其他第三方缓    存方案,创建适配器来完全覆盖缓存行为。

    不同点:

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

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


    比较:

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

    Hibernate优势

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

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

    3. Hibernate数据库移植性很好,MyBatis的数据库移植性不好,不同的数据库需要写不同SQL。

    4. Hibernate有更好的二级缓存机制,可以使用第三方缓存。MyBatis本身提供的缓存机制不佳。

    Mybatis优势

    1. MyBatis可以进行更为细致的SQL优化,可以减少查询字段。

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

    一句话总结

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

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

  • 相关阅读:
    Jmeter 04 JMeter 负载与监听
    《Python 机器学习》笔记(四)
    《动手学深度学习(李沐)》笔记3
    《动手学深度学习(李沐)》笔记2
    《动手学深度学习(李沐)》笔记1
    Latex排版全解(转)
    《Python机器学习》笔记(三)
    《数据挖掘导论》笔记(四)
    Latex技巧:在图表序号中加入章节号(实现诸如“图1.1.2”这样的图表序号)
    Latex技巧:插入参考文献
  • 原文地址:https://www.cnblogs.com/cing/p/9138837.html
Copyright © 2011-2022 走看看