ORM框架之Mybatis与Hibernate使用对比

最近新学了Hibernate框架,发现跟Mybatis还是有很多不一样的地方,使用习惯也有所不同,于是就想专门梳理一下两者的一些异同点,如有错误遗漏,欢迎讨论指出。

什么是ORM框架

  首先介绍一下什么是ORM框架,全称Object Relational Mapping,简称ORMO/R Mapping,即对象关系映射。是一种程序设计技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换。从效果上说,它其实是创建了一个可在编程语言里使用的“虚拟对象数据库”(引用自百度百科)。个人认为其实与jdbc的连接是一个类似的模式,都是能够实现在面对不同对象访问时能够自行转换,从而使得开发者代码操作统一。而今天要介绍的两个框架都是属于ORM框架。

Mybatis与Hibernate

其实Mybatis是一个半ORM框架,半ORM指的是它的持久层封装不彻底,也就给了开发者更多的发挥空间去控制数据库操作的细节。而Hibernate是完全的ORM框架,他功能强大,具有完整流程,开发者只需要按照业务需求调用相应的接口方法即可完成数据库的调用操作,不需要开发者自己书写sql语句。但是缺点而是很明显的,就是sql语句由框架书写,那么当业务操作复杂的时候就会造成性能下降,因为他底层接口的方法是固定的,无法人为修改。

下面我们贴上一组操作对比:

Mybatis持久层接口方法:在这里插入图片描述
持久层xml映射文件sql语句:Mybatis的特点就是需要自行书写sql语句,也算是有利有弊吧,可以自行优化sql语句,提升性能。当然也可以选择用Mybatis Plus,能直接使用部分简单的sql语句,不用开发者书写
在这里插入图片描述
service层则是正常的持久层方法调用:
在这里插入图片描述
我们再看下执行情况:可以看到不适用嵌套语句的情况下,只会有一条sql语句执行
在这里插入图片描述
而Hibernate中:
持久层接口:什么方法都可以不用写,只需要继承一个接口
在这里插入图片描述
实现类中:直接注入接口名,然后调用接口自带的方法就可以完成数据库操作
在这里插入图片描述
再来看下执行情况:
添加方法是执行了两条语句在这里插入图片描述
删除方法我这里做了级联删除,但是也执行了四条语句在这里插入图片描述
而与之相比,Mybatis只执行了一条语句就实现了同样的功能。

总结

经过工程结构,代码结构以及执行情况的对比,可以得到:
1、操作上Mybatis更多需要开发者手动编写但是易上手,HIbernate大部分为直接调用,开发者只需要编写注解和继承接口,新学者不易上手;
2、功能上Mybatis只执行书写的sql语句;而Hibernate会自动调用一系列辅助语句,共同完成业务需求。
3、应用场景上Mybatis支持高性能应用编写,能应对各种复杂的业务需求,适用于对应用比较高要求的互联网行业,而Hibernate sql语句固定,适用于业务需求简单固定的行业,比如erp等;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值