点击上方蓝色“方志朋”,选择“设为星标”

回复“666”获取独家整理的学习资料!

来源 | zhihu.com/question/309662829

Spring 团队的Josh Long自己在Twitter上做了一个调查。1625次投票,样本量不算大,但也能说明问题。和我答案最后的那些调查图表基本一致。

我们看一下Google Trends的数据:

搜索条件是这样的:

World Wide:

United States:

France:

India:

Canada:

China:

Japan:

其他英文技术网站上的多个统计:

再看看Stack Overflow上的问题数:

(含有hibernate的标签和问题数)

(含有mybatis的标签和问题数)

下面是我个人的观点:

其实十年前我们主要使用的ORM框架就是iBatis,而阿里巴巴是对国内Java开发者影响最大的一家公司。阿里在国内Java社区的影响力有目共睹,这个大家应该都能感受到, 阿里对Java社区贡献了很多实用的开源工具,并且国内Java开发者对于阿里开源的产品接纳程度也最高。

而且早期阿里系离职工程师的影响力也不可小觑,这些从阿里离职的工程师进入了各个规模的公司, 通常也有担任较高的职位, 拥有着相对较多的话语权, 在新公司继续使用自己熟悉的iBatis就是再正常不过的了。

MyBatis封装较少,提供的切入点较多,适合进行架构。遇到超级复杂的场景的时候有不错的sql支持。曾经JPA适合做增删改,mybatis只擅长查询,但是现在的tk.mybatis已经补上了这一块短板,而JPA的依然没有补上他的查询短板。在复杂情况下需要在代码里嵌入大量sql片段或手动用代码拼装sql,但是老实说,都到这份上了,写sql不是还更快一点?因此,做企业级应用时,如果组内Hibernate会的人多,可以考虑用这个,但是依然会埋下一个性能的坑。做互联网级应用时,建议还是用Mybatis吧。

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

热门内容:
  • 干掉Navicat:正版,MySQL官方客户端真香!

  • JDK 16 即将发布,新特性速览!

  • 微服务架构中配置中心的选择

  • Java 项目权威排名:Nacos 未上版,Gradle 排名第二,Maven 排名 28

最近面试BAT,整理一份面试资料《Java面试BAT通关手册》,覆盖了Java核心技术、JVM、Java并发、SSM、微服务、数据库、数据结构等等。获取方式:点“在看”,关注公众号并回复 666 领取,更多内容陆续奉上。
明天见(。・ω・。)ノ

为什么国内流行的 MyBatis ,国外 Java 工程师却不愿意使用?相关推荐

  1. 为什么国内流行hbase,国外反而多用cassandra?

    为什么国内流行hbase,国外反而多用cassandra? Google trend上的数据 只有中韩在使用hbase,其他地区大多都在用cassandra,这是什么原因导致的?hbase和cassa ...

  2. 国外电子工程师们国内电子工程师火拼(转)

    转自http://bbs.21ic.com/ 国外电子工程师们&国内电子工程师火拼 感觉这里缺点海派风味,程序匠人能否下功夫拉些海外背景的电子工程师来交流交流?毕竟,电子信息业的发源地在人那里 ...

  3. 国内各大互联网公司Java工程师笔经面经

    系统复习后,常规笔试面试题目,还是有必要看下,毕竟校招也是一场"应试". 原文链接 今天斩获今日头条 实习offer 特来分享 WAP onsite interview面经 BAT ...

  4. Java工程师修炼之道

    转自:Java工程师修炼之道 一.软件开发的核心原则 此处所说的是软件开发应该遵循的一些核心原则: 1.Don't Repeat Yourself: 这是软件开发的一个基础原则,即不要做重复性劳动.也 ...

  5. Java工程师修炼之道! | 送10本书籍

    作者:著有<Java工程师修炼之道> 出处:来自Java工程师修炼之道一书节选内容 一.软件开发的核心原则 此处所说的是软件开发应该遵循的一些核心原则: 1.Don't Repeat Yo ...

  6. Java工程师核心书单,阿里大佬看了都说好!

    随便打开一个招聘网站,看看对高级Java工程师的技能要求. 抛开其它的经验能力等等,单纯从技术,或者说知识上来讲,可以发现一些共通的地方. Java基础 计算机基础 数据库,SQL/NoSQL 常用开 ...

  7. 这份Java Web必读书单,值得所有Java工程师一看!

    点击蓝色"程序员书单"关注我哟 加个"星标",每天带你读好书! 经过了10多年的发展,Java Web从开发框架到社区都已经非常成熟,而目前市面上最流行的Jav ...

  8. 中小公司的Java工程师怎么进BAT?

    这篇文章,跟大家聊一聊很多很多很多人问我的一个问题:中小公司的Java工程师应该如何规划准备,才能跳槽进入BAT这类一线互联网公司? 之所以我用了三个 "很多" 来形容这个问题,是 ...

  9. 中小公司的Java工程师应该如何逆袭冲进BAT

    目录 (1)80% Java工程师都有的迷茫 (2)你的技术为啥十年八年都无法进步? (3)追求卓越,自己设立技术挑战 (4)幻想一步登天?那只是你的黄粱美梦 (5)不断提升自己,最后进入BAT (6 ...

最新文章

  1. LightOJ - 1265 概率
  2. jQuery使用(十二):工具方法之type()之类型判断
  3. fillstyle属性_HTML canvas
  4. 爬虫苦训第一天,我的第一个爬虫!!!
  5. qt爬取网页信息_豆瓣TOP250数据爬取
  6. 巡逻机器人用应用的pc端车牌识别
  7. JavaFX真实世界应用程序:EIZO CuratOR Caliop
  8. Ubuntu下配置使用maven
  9. CSS中的Position、Float属性的一些深入探讨
  10. imagenet2012数据集
  11. 团队编程项目作业4-开发文档
  12. easypoi list中的map导出_java导出excel(easypoi)
  13. STM32内部FLASH使用简易流程
  14. DirectAdmin教程-初级
  15. 湖南省中职计算机应用教资笔试+面试心得
  16. 伯爵写给女巫的一封信
  17. CAN核心帧收发流程
  18. CentOS自动同步互联网服务器时间
  19. java学习之SpringBoot2
  20. 欧几里德 与 扩展欧几里得 学习笔记

热门文章

  1. QT报错“qt.network.ssl: QSslSocket: cannot resolve SSLv2_client_method”
  2. 【转】ASP.NET Page事件的执行顺序
  3. [pytorch][stepbystep]在pytorch上实现卷积神经网路(CNN)的裁剪(purning)
  4. C++ 学习笔记之——文件操作和文件流
  5. BZOJ 4025 二分图
  6. 如何进行Web服务的性能测试?
  7. interface IEngineControl封装引擎通用操作
  8. C# 文件操作(上传 下载 删除 文件列表...)
  9. Matlab数据的可视化 -- 平面多边形的着色
  10. 快速区域积分直方图实现