为什么国内流行的 MyBatis ,国外 Java 工程师却不愿意使用?
点击上方蓝色“方志朋”,选择“设为星标”
回复“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 工程师却不愿意使用?相关推荐
- 为什么国内流行hbase,国外反而多用cassandra?
为什么国内流行hbase,国外反而多用cassandra? Google trend上的数据 只有中韩在使用hbase,其他地区大多都在用cassandra,这是什么原因导致的?hbase和cassa ...
- 国外电子工程师们国内电子工程师火拼(转)
转自http://bbs.21ic.com/ 国外电子工程师们&国内电子工程师火拼 感觉这里缺点海派风味,程序匠人能否下功夫拉些海外背景的电子工程师来交流交流?毕竟,电子信息业的发源地在人那里 ...
- 国内各大互联网公司Java工程师笔经面经
系统复习后,常规笔试面试题目,还是有必要看下,毕竟校招也是一场"应试". 原文链接 今天斩获今日头条 实习offer 特来分享 WAP onsite interview面经 BAT ...
- Java工程师修炼之道
转自:Java工程师修炼之道 一.软件开发的核心原则 此处所说的是软件开发应该遵循的一些核心原则: 1.Don't Repeat Yourself: 这是软件开发的一个基础原则,即不要做重复性劳动.也 ...
- Java工程师修炼之道! | 送10本书籍
作者:著有<Java工程师修炼之道> 出处:来自Java工程师修炼之道一书节选内容 一.软件开发的核心原则 此处所说的是软件开发应该遵循的一些核心原则: 1.Don't Repeat Yo ...
- Java工程师核心书单,阿里大佬看了都说好!
随便打开一个招聘网站,看看对高级Java工程师的技能要求. 抛开其它的经验能力等等,单纯从技术,或者说知识上来讲,可以发现一些共通的地方. Java基础 计算机基础 数据库,SQL/NoSQL 常用开 ...
- 这份Java Web必读书单,值得所有Java工程师一看!
点击蓝色"程序员书单"关注我哟 加个"星标",每天带你读好书! 经过了10多年的发展,Java Web从开发框架到社区都已经非常成熟,而目前市面上最流行的Jav ...
- 中小公司的Java工程师怎么进BAT?
这篇文章,跟大家聊一聊很多很多很多人问我的一个问题:中小公司的Java工程师应该如何规划准备,才能跳槽进入BAT这类一线互联网公司? 之所以我用了三个 "很多" 来形容这个问题,是 ...
- 中小公司的Java工程师应该如何逆袭冲进BAT
目录 (1)80% Java工程师都有的迷茫 (2)你的技术为啥十年八年都无法进步? (3)追求卓越,自己设立技术挑战 (4)幻想一步登天?那只是你的黄粱美梦 (5)不断提升自己,最后进入BAT (6 ...
最新文章
- LightOJ - 1265 概率
- jQuery使用(十二):工具方法之type()之类型判断
- fillstyle属性_HTML canvas
- 爬虫苦训第一天,我的第一个爬虫!!!
- qt爬取网页信息_豆瓣TOP250数据爬取
- 巡逻机器人用应用的pc端车牌识别
- JavaFX真实世界应用程序:EIZO CuratOR Caliop
- Ubuntu下配置使用maven
- CSS中的Position、Float属性的一些深入探讨
- imagenet2012数据集
- 团队编程项目作业4-开发文档
- easypoi list中的map导出_java导出excel(easypoi)
- STM32内部FLASH使用简易流程
- DirectAdmin教程-初级
- 湖南省中职计算机应用教资笔试+面试心得
- 伯爵写给女巫的一封信
- CAN核心帧收发流程
- CentOS自动同步互联网服务器时间
- java学习之SpringBoot2
- 欧几里德 与 扩展欧几里得 学习笔记
热门文章
- QT报错“qt.network.ssl: QSslSocket: cannot resolve SSLv2_client_method”
- 【转】ASP.NET Page事件的执行顺序
- [pytorch][stepbystep]在pytorch上实现卷积神经网路(CNN)的裁剪(purning)
- C++ 学习笔记之——文件操作和文件流
- BZOJ 4025 二分图
- 如何进行Web服务的性能测试?
- interface IEngineControl封装引擎通用操作
- C# 文件操作(上传 下载 删除 文件列表...)
- Matlab数据的可视化 -- 平面多边形的着色
- 快速区域积分直方图实现