Hibernate和Mybatis对比

一、Hibernate和Mybatis是什么?

hibernate:

hibernate的特点
(1)对象化。Hibernate可以让开发人员以面相对象的思想来操作数据库。
(2)更好的移植性。对于不同的数据库,开发者只需要使用相同的数据操作即可,开发者无需关心数据库之间的差异。
(3)开发效率高。Hibernate 提供了大量的封装,很多数据操作以及关联关系等都被封装的很好,开发者不需写大量的sql语句,这就极大的提高了开发者的开发效率。
(4)缓存机制的使用。Hibernate 提供了缓存机制(session缓存,二级缓存,查询缓存),对于那些改动不大且经常使用的数据,可以将它们放到缓存中,不必在每次使用时都去查询数据库,缓存机制对提升性能大有裨益。

是一个标准的ORM框架(对象关系映射)。入门门槛较高,不需要程序写sql语句,sql语句自动生产了。对sql的优化比较困难。 应用场景:适用与需求变化不多的中小型项目中,比如后台管理,erp,orm,oa;

mybatis:

Mybatis特点
(1) 与JDBC相比,减少了50%以上的代码量。
(2)MyBatis是最简单的持久化框架,小巧并且简单易学。
(3)MyBatis相当灵活,不会对应用程序或者数据库的现有设计强加任何影响,SQL写在XML里,从程序代码中彻底分离,降低耦合度,便于统一管理和优化,并可重用。
(4)提供XML标签,支持编写动态SQL语句。提供映射标签,支持对象与数据库的ORM字段关系映射。

专注于sql本身,需要程序员自己编写sql语句,sql修改,优化比较方便,mybatis是一个不完全的ORM框架,虽然程序员自己写sql,mybatis也可以实现映射(输入映射,输出映射)。试用场景:适用于需求变化较多的项目,比如:互联网项目。
加关注私信回复我【学习资料】获取面试和学习资料

公司一般用hibernate多还是用mybatis多一些?

使用 hibernate 或者 mybatis 不是看公司的规模大小的。
并没有规定什么样规模的公司使用什么样得技术,也没有什么不成文的约定俗成的东西去定义的。
使用 hibernate 或者 mybatis 完全是跟着项目走的,由架构或者懂技术的项目经理在项目开始的时候去选型。
其选型要考虑到项目的大小,周期,项目的性能要求以及自己公司内部参与开发的同事对技术掌握的熟练度去考虑的,因为有些人可能会用 hibernate 不会 mybatis ,而有人正好相反,甚至可能选型的人技术能力不足,只会其中一种,都有可能影响选型的。
有的时候选型根据领导要求或者客户公司如果有硬性要求,那么选型就固定其中一种了!
基本上,考虑到轻量,性能要求高,基本都是选择 mybatis ;同时可能公司很多人对hibernate 比较熟,开发速度快,项目要求不算太高,那么可能就选择 hibernate 了!

总结:

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

  1. 入门简单,即学即用,提供了数据库查询的自动对象绑定功能,而且延续了很好的SQL使用经验,对于没有那么高的对象模型要求的项目来说,相当完美。

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

  3. 缺点就是框架还是比较简陋,功能尚有缺失,虽然简化了数据绑定代码,但是整个底层数据库查询实际还是要自己写的,工作量也比较大,而且不太容易适应快速数据库修改。

  4. 二级缓存机制不佳。
    hibernate:强大、方便、高效、复杂、绕弯子、全自动

  5. 功能强大,数据库无关性好,O/R映射能力强,如果你对Hibernate相当精通,而且对Hibernate进行了适当的封装,那么你的项目整个持久层代码会相当简单,需要写的代码很少,开发速度很快,非常爽。

  6. 有更好的二级缓存机制,可以使用第三方缓存。

  7. 缺点就是学习门槛不低,要精通门槛更高,而且怎么设计O/R映射,在性能和对象模型之间如何权衡取得平衡,以及怎样用好Hibernate方面需要你的经验和能力都很强才行。

    本篇博客内容来自于互联网,本人重新整合!
    
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

朱茂强

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值