关于Jpa和Mybatis的一些见解

如今网络上充斥着Jpa和Mybatis的一些对比。其实狭义上来讲是hibernate和mybatis之间的比较。mysql

例如:为何感受国内比较流行的 mybatis 在国外好像没人用的样子?程序员

下面是一些截图spring

我不是一个喜欢评论的人,但此次我忍不住了。sql

  • hibernate 历史悠久并不表明过期,mybatis 这种方式就是将来吗?确定不是。数据库就是用来存数据的,联表查询一大堆只能说明数据结构设计是有问题的,只是不肯认可或者内心没底而已,居然还有人为了排序筛选数据,把复杂的运算放到关系型数据库去作,咋不上天呀,你这是叫格力的仓管大爷去替你拿材料,顺便让他根据各类因子计算新型压缩机的功率损耗。数据分析就不该该让关系型数据库作,这叫各司其职。
  • 这条语句的逻辑颇有意思: UPDATE items SET price = 11 WHERE id = 1111,难道更新数据的时候不须要先取出数据再更新吗?对了,但凡是有一点点的并发需求,不管是乐观锁仍是悲观锁,都须要查询到最新的数据不是吗,悲观的加锁,乐观的核对 Version。至于全字段回写数据库,只是不知道有这种操做而已,hibernate 明明能够指定局部字段更新的好吗
  • 报表逻辑真实存在!这也许是一种让程序员经过关系数据库把数据分析这活也干了的一种借口吧,程序员可不要乐在其中哦
  • 微服务都大行其道了,还在狂钉外键,一大堆联表查询,sql 语句多达几百行,想一想都忍不住噗。定义好业务边界,拆分红独立子系统吧,否则到了必定规模,别说 hibernate 干不了这活,mybatis 手写 sql 又咋样,一样干不了,不信给某个大厂的高流量数据钉个外键试试,看他们技术总监会不会拿刀追。小公司规模每每远没有达到那种撑不住的程度,大厂的高访问量业务数据早已不是这里逼逼的联表查询了。。。
  • 若是公司的数据库要从 mysql 转移到 Oracle、MongoDB、sqlserver 或者其余的数据库,用 mybatis 的,就问你慌不慌吧。spring 官方支持 jpa 并非没有依据的,jpa 屏蔽了底层差别。

既然 Jpa 用起来省心,不必硬跟某些大厂的步伐,一步两步,似魔鬼的步伐!数据库

就像淘宝技术十年里说的:网络

如用户模块,老的 member.taobao.com 继续维护,不添加新功能,新功能在新的模块上开发,跟老的模块共用一个数据库,开发完毕以后放到不一样的应用集群上,另开一个域名 member1.taobao.com ,同时再替换老的功能,替换一个,就把老的模块上的功能关闭一个,逐渐把用户引导到 member1.taobao.com ,等全部的功能都替换完以后,关闭 member.taobao.com 上。从设计上来看,这个 member1 的二级域名应该是一个过渡状态,但咱们把 member 域名的代码下线之后,发现很难把 member1 切换回 member,由于有些地方把连接写死了,因而后来很长时间里咱们都是在用 member1.taobao.com 这样奇怪的域名。一年后,有另一家互联网公司开始作电子商务了,咱们发现他们的域名也叫 member1.xx.com 、auction1.xx.com ,复制得毫无保留,咱们只能会心一笑。数据结构

没错,我用JPA,我也很喜欢JPA的设计哲学。可是同时我以为Mybatis也是一个很好的框架,高效地解决了不少问题,知足了不少企业的需求,给一个大大的赞。mybatis

技术只是解决问题的一种方式、一种工具,选择哪一种技术因人而异,存在即合理。并发

相关文章
相关标签/搜索