转载

JPA也能写sql,为什么还要用MyBatis?

“什么是世界上最好的编程语言?

“Java和C++应该选哪个?”

“应该选JPA还是Mybatis?”

我们在工作中,总是有很多问题,尤其是遇到技术选型的时候,争论会比较多。

很多人都是会什么吹什么,自己用JPA所以吹JPA,尝到MyBatis的甜头就说MyBatis好...

现在很多程序员因为工作需要或者方便面试,会去学习新的技术,但也只限于学习技术的使用,不考虑它好在哪里。剪刀和菜刀哪个好?剪刀也可以切菜,为什么还要用菜刀? 脱离了使用场景,去谈工具之间的优劣,就是耍流氓。 每一种框架都有其优点和不足,在不同的工作场景中,要看哪个框架可以解决你的需求。

假如现在你手头有个项目:

1、如果你用原始JDBC对接数据库,会发现组装对象太痛苦,而且还需要自己建表,累死个人…

2、当你发现了Spring Data JPA ,仿佛打开了新世界的大门,增删改查不用写了,直接继承;数据库表也不用建了,直接自动生成。原来数据库操作代码要写一天,现在一条语句就搞定!只是项目体量激增后,JPA的优化性能比较复杂。

3、这时候你发现了mybatis,宛如一个黑科技!直接映射返回对象,前台所需要的数据库建个DTO类就行,多表关联的数据也可以一个DTO接收所有数据。根据条件组装各种SQL,简直是爽爆了!

所有的编程语言、技术框架等等,对于程序员来说,都只是工具。技术是服务于业务的,没有绝对NB的技术,只有适合当前业务的技术。

JPA也能写sql,为什么还要用MyBatis?

MyBatis整体架构

JPA默认使用hibernate作为ORM实现,为什么阿里巴巴的持久层抛弃了hibernate采用了MyBatis框架?主要就是因为MyBatis更适合处理大量数据或者大并发情况。

JPA 是面向对象的思想,一个对象就是一个表,强化的是你对这个表的控制。JPA继承的那么多表约束注解也证明了JPA对这个数据库对象控制很注重;

mybatis 则是面向sql,你的结果完全来源于sql,而对象这个东西只是用来接收sql带来的结果集。你的一切操作都是围绕sql,包括动态根据条件决定sql语句等。mybatis并不那么注重对象的概念,只要能接收到数据就好。

Mybatis的优点是简单高效,优化起来也方便,比较符合现在的开发节奏,现在的互联网公司都是先快速开发占领市场,然后再优化代码。而且这个过程需求经常是变来变去的,开发人员也有流动性,这种情况下用Mybatis显然更加适合。

JPA也能写sql,为什么还要用MyBatis?

MyBatis学习路线

而且相比于JPA,MyBatis学习成本低,使用简单,能达到目的,不增加额外工作量(或很少增加),架构来说MyBatis功能单一,场景明确,耦合度低,无状态,便于 (放在业务代码里) 分布式部署。在大多数场景里,MyBatis更适合。

很多工作3、5年的程序员,工作中接触的新技术有限,对于MyBatis的诸多妙用依然一知半解。 为了带大家发现MyBatis的全新世界,我特地邀请了资深架构师、复旦大学硕士Lison老师为大家带来 《MyBatis》 系列直播课, 带你摸清MyBatis的骨架,同时从源码角度深度理解MyBatis, 原价199元,公众号粉丝限时专享0.1元,限量200个名额!

在线直播,有疑问,现场解决! JPA也能写sql,为什么还要用MyBatis?

《MyBatis从青铜到王者之路》

JPA也能写sql,为什么还要用MyBatis?

原价199元,本公众号粉丝专享限时 0.1元

Lison老师:

资深架构师,10余年java行业经验。

专精领域: 精通JAVA、J2EE和前端开发,擅长互联网高并发、高可靠架构设计;

课程大纲

4.21

骨骼惊奇的MyBatis

1.摸清MyBatis的骨架

2.日志模块分析

4.22

数据源与缓存的实现

1.数据源模块分析

2.缓存模块分析

4.23

学习源码的正确姿势

1.MyBatis的核心运行流程

2.看源码的正确姿势

JPA也能写sql,为什么还要用MyBatis?

附赠 7.8G的Java架构进阶、视频资料

及程序员简历模板

JPA也能写sql,为什么还要用MyBatis?

扫码添加肉兰老师报名

“来,一起 发现MyBatis的全新世界

原文  http://mp.weixin.qq.com/s?__biz=MzI1NDY0MTkzNQ==&mid=2247488267&idx=1&sn=c50b6581deb14b678dc394f64a9efdd1
正文到此结束
Loading...