如今网络上充斥着Jpa和Mybatis的一些对比。其实狭义上来讲是hibernate和mybatis之间的比较。mysql
例如:为何感受国内比较流行的 mybatis 在国外好像没人用的样子?程序员
下面是一些截图spring
我不是一个喜欢评论的人,但此次我忍不住了。sql
UPDATE items SET price = 11 WHERE id = 1111
,难道更新数据的时候不须要先取出数据再更新吗?对了,但凡是有一点点的并发需求,不管是乐观锁仍是悲观锁,都须要查询到最新的数据不是吗,悲观的加锁,乐观的核对 Version。至于全字段回写数据库,只是不知道有这种操做而已,hibernate 明明能够指定局部字段更新的好吗既然 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
技术只是解决问题的一种方式、一种工具,选择哪一种技术因人而异,存在即合理。并发