Mybatis和Hibernate的区别

同样作为ORM的持久化框架HibernateROM实现会更加的完善和彻底一些,Mybatis的特点实际上是SQL映射也就是说它的重心在SQL语句的管理,那么对于对象这个层面上,实际上是没有提供过多的设计,而Hibernate框架除了提供封装这样的基本功能之外,那么还提供了在对象基础上的一些状态的维护以及对象的级联操作等附加的功能。


相比及而言Hibernate是一个更加完善ROM实现,而Mybatis则是一个简化版的ROM实现,它的侧重点在于SQL语句的管理,而Hibernate则提供了一些增值的服务,由于这一个核心的区别由此就产生了后续的两点差异。


Hibernate更侧重于面向对象的一个实现,使用Hibernate开发的过程中几乎不会去牵扯到具体的数据库的特征所以我们面向数据库访问操作写出来的是一些移植度高的代码,而这些代码的话编写起来非常简单而且便于修改,因为它和具体的数据库是无关的,那么我们程序就具备了良好的数据库移植性。


Mubatis的话是一个SQL映射的框架,在使用Mybatis的过程中我们要编写大量的SQL语句,那么由此带来的弊端就是如果你的项目需要进行数据库的迁移,大批的SQL语句会因此而发生这种修改的需求,但是因为直接使用SQL语句,Mybatis在另外一个方面反倒具有了一些优势,它的使用自由度比较高,如果我需要当前数据库的一些特定的语法来对这条语句进行优化的话那么对于HIbernate的话还是比较麻烦的,但是因为直接使用了SQL语句SQL映射Mybatis用起来就是特别方便了,另外你的数据库设计的时候它的规范性不够高,那么需要在编写SQL语句的时候针对这个库去做特定的编写,那么这个时候Mybatis因为能直接写SQL语句也是显得自由度比较高,而HIbernate的话就不太适合这些不够规范的数据库设计,同时由于直接使用SQL语句Mybatis的执行效率略微的高于HIbernate,当然这个不是绝对的,那么如果在HIbernate当中我们配合缓存等机制,良好的设计的话,那么其实在效率上没有非常明显的差别的。


综上所述Hibernate框架的特点是在解决了处理访问代码的封装的基本层面上运用面向对象的特点来提供一些高级的附加功能,那么面向对象特点也使得Hibernate开发出来的代码有高度的可扩展性和可移植性,那么修改起来也比较方便,但是因为它封装的特点导致它在使用的自由度方面略逊于Mybatis,而Mybatis正好相反,那么它SQL映射的简单的封装虽然说在我们需要面向对象的一些的特性的支持的时候存在一定的劣势,但是因为它直接使用SQL语句那么它的强项就在于使用的自由度比较高,开发人员可以自由的编写SQL语句来通过Mybatis框架执行,而这一点在Hibernate中运用起来则比较繁琐,不如Mybatis框架来的自由和灵活。


以上就是我对Mybatis框架和Hibernate框架的区别以及理解


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值