昨天我在我在知乎看到了一张比较Hibernate和MyBatis运用状况的图,随手发了条冤家圈:
Hibernate vs MyBatis ,谁能通知我什么样的国情招致了这么大的差异?
结果有人质疑,有人慨叹。
我末尾没有想到会有人质疑这个结果,在我的直觉里,确实国外运用MyBatis的人很少(在国外的网站上很少看到MyBatis的文章,但JPA/Hibernate的文章常常看到)。所以明天早上我用谷歌的trends验证了一下,下面的以及下面的这些比较图,都可以拜访 https://trends.谷歌.com/trends/explore?q=%2Fm%2F04t80p,MyBatis 来看到。
从下面这个比照来看,MyBatis的关注主要集中在中日韩。
从全球的的比例来看,是这样的:
下面是基于谷歌查询的数据计算出来的,假设基于youtube,那结果是这样的:
从以上的结果来看,在国外,准确地说,在中日韩之外的大部分地域,JPA/Hibernate完胜MyBatis,但在国际却完全相反,But Why?
老外为什么不用MyBatis?为什么会这样呢?我也不知道。一些冤家宣布了本人的想法:
回复基本上分两种:
青年顺序员都在质疑这个图的可信度
中老年顺序员都在慨叹国外其实更注重开发效率和面向对象的剖析和设计
有个冤家说的十分好:
窃以为,唯独神州少量运用Mybatis,主要看重它不强化业务建模地搞表。
形成的结果是,宁可本人写SQL也不意义花力气运用OOAD思想方式梳理业务并建模。
而hibernate是OOAD建模后的自然延伸
好吧,下面是我团体的观念:
确实,和对OOAD的注重有关,我在做DDD战术落地的时分,用MyBatis十分蹩脚,用JPA/Hibernate会好很多。
JPA/Hibernate比较复杂,团队中要有人Hold住它,否则及其容易踩坑;另外,真要运用,建议运用它的一个功用子集,不要一切功用都用。也可以尝试运用更复杂EBean ORM。
JPA/Hibernate对分库分表的支持有一下坑。虽然,运用Shareding-JDBC或MyCat等技术,可以不关心分库分表,但是,JPA/Hibernate在某些状况下(比如加载子集合的时分)能够会不带分区键。国外分库分表的少,国际简直是标配。
国际做互联网的Java顺序很多都是拷贝阿里的,阿里一末尾用例iBatis(日本韩国是怎样回事呢)。少量的老系统都是基于iBatis/MyBatis的,市场上对MyBatis熟习的人才更多,招聘和培训更容易,有的青年顺序员以为“MyBatis早已一致全球了”就是一个很好的证明。
还有别的缘由吗?大家可以补充。
【编辑引荐】
房东:你敢申报,我就涨房租!今冬,我一个顺序员冤家分开了北京……
顺序员如何提升算法思想?
拼多多出现惊天Bug,又要拿顺序员祭天?
顺序员成为最佳被嫁对象,不但条件好,还不用担忧出轨!
顺序员,为什么给你50万年薪,你还要搞死我公司?
(责任编辑:admin)