Mybatis框架(一)——Mybatis和Hibernate的对比和技术选型

数据持久层框架介绍:
1.数据持久层的常见解决方案

数据持久层框架是为了方便我们和数据库打交道而出现的,常见的解决方案有以下这些:
Mybatis(Mybatis-plus)、hibernate、springdata jpa、ObjectiveSQL 、通用mapper
其中Mybatis+MybatisPlus和hibernate加起来基本占据了大部分市场,因此这两套解决方案也是我们了解的重点。

2.Mybatis和Hibernate的对比和技术选型

Mybatis是不完整的解决方案,更像是”SQL模板引擎“,开发人员需要写原生的SQL语句,而Hibernate是一套完整的数据库解决方案,能做到数据库无关性,开发人员不需要编写SQL语句也可以完成开发。虽然Hibernate听上去很美好,但是“解决一部分问题的同时一定会引入新的问题”,所以这两个框架的区别需要辩证看待。

区别:
①手写SQL不是一无是处
虽然手写SQL很麻烦,但是有时候手写可以严格控制SQL语句的执行性能,灵活度高。
而且有的中间件和特殊情况(例如分布式系统)需要对sql做优化的,手写sql显然会更方便。
就算业务中只有5%的需求要手写复杂的SQL语句,那么不能手写SQL就变成了缺点。
②学习难度、开发成本
Mybatis上手非常简单,会写SQL语句的程序员只需要稍加练习,就可以掌握大部分内容。而hibernate虽然功能强大,但是想要精通的难度是非常高的,例如:如何设计映射关系、性能和对象模型之间如何权衡等等,培养一个精通Hibernate的程序员需要大量经验时间的积累。学习难度高,意味着开发成本提高,需要占用团队的大量时间。
③维护成本高+排查问题难
因为Hibernate有难度,意味着出现问题之后,维护需要的人力时间投入也高,排查Hibernate问题的难度会比直接排查SQL语句的难度高,没有精通Hibernate的程序员在场肯定会出问题。

技术选型:
1.公司业务:因为现在都是直接数据库捞数据,业务写在代码里,Mybatis+Mybatis-plus会更方便
2.成本考量:Mybatis可以便于整个团队快速上手,而且排查SQL语句问题的难度低,也是选择Mybatis
3.市场:大厂带来的推动作用,导致国内基本都是Mybatis为主,例如阿里。
4.是否有一个愿意钻研hibernate的团队、学习成本、学习积极性、DBA的审查等等

综上所述,Mybatis+Mybatis-plus 是目前比较优秀的解决方案,简单的sql通过MybatisPlus不需要手写,复杂的sql可以直接写sql语句,排查问题方便,学习使用成本低。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值