hibernate和mybatis有什么区别

发布时间:2021-06-18 16:59:22 作者:Leah
来源:亿速云 阅读:150

今天就跟大家聊聊有关hibernate和mybatis有什么区别,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

hibernate和mybatis的区别

1 简单简介 Hibernate 框架

    Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,建立对象与数据库表的映射。是一个全自动的、完全面向对象的持久层框架。

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 缓存方面

相同点:

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

不同点:

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

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

比较:

      Hibernate 具有良好的管理机制,用户不需要关注SQL,如果二级缓存出现脏数据,系统会保存,;

       Mybatis 在使用的时候要谨慎,避免缓存CAche 的使用。

Hibernate优势

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

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

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

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

Mybatis优势

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

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

一句话总结 Mybatis:小巧、方便、高效、简单、直接、半自动化

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

看完上述内容,你们对hibernate和mybatis有什么区别有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。

推荐阅读:
  1. MyBatis和Hibernate相比,优势在哪里?
  2. Mybatis中#{}和${}有什么区别

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

hibernate mybatis

上一篇:Go 语言中 switch如何使用

下一篇:python清洗文件中数据的方法

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》