{eval=Array;=+count(Array);}

问答专栏Q & A COLUMN

为什么国内流行mybatis,国外反而多用hibernate?

付伦付伦 回答0 收藏1
问题描述:最近看了一个调查,只有中日韩在使用mybatis,其他地区大多都在用hibernate,这是什么原因导致的?mybatis和hibernate又分别适用于什么场景呢?
收藏问题

9条回答

garfileo

garfileo

回答于2022-06-28 14:13

主要是hibernate提倡以面向对象的方式操作数据库,SQL都是自动生成的,有些复杂的查询orm生成的SQL不会命中索引,导致查询性能不高。一切起源于杰克马提出的去ioe运动,根本原因是没钱就疯狂压榨程序员。

评论0 赞同0
  •  加载中...
whlong

whlong

回答于2022-06-28 14:13

1.国内基本都学过SQL,而且写SQL很方便。

2.国内大多数是“面向数据库编程”

3.JPA的表连接太难懂,国内对于ORM的思想还是停留在JDBC

4.Mybatis更易于维护,面对不稳定的国内环境更适合

评论0 赞同0
  •  加载中...
qujian

qujian

回答于2022-06-28 14:13

1.hibernate对sql做了一层封装转换变成了hql,sql对程序员来说是最直观的,hql又包了一层,感觉别扭。

2.都要生成一通xml,hibernate没优势啊,mybatis一些插件单表不用xml了,维护方便啊。

3.国内项目业务复杂,mybatis更具有灵活性。插件丰富tk.mybatis、mybatis-plus大大降低了开发成本。

4.MyBatis可以进行更为细致的SQL优化,可以减少查询字段。

5.MyBatis容易掌握,而Hibernate门槛较高。

6.缓存问题(这一点我说得不一定对),话说hibernate比mybatis更好使用,需要注意得地方少。但是,但是,但是啊我觉得这只是对单机项目吧,目前多节点项目都用redis作为缓存啊,这就使的架构师选择mybatis时更加没什么犹豫了。

7.国内开源项目基本都是集成得mybatis,氛围就是这样。用hibernate的都是一些老项目,公司内部的不开源的,基本的架构设计和目前的潮流格格不入了。国内的培训机构基本都时ssm流。

8.MyBatis相对于hibernate的缺点渐渐被弥补是关键,MyBatis的代码生成器拓展起来真的很方便。

9.MyBatis的批量保存使用要注意

评论0 赞同0
  •  加载中...
lakeside

lakeside

回答于2022-06-28 14:13

面向数据库编程,用MyBatis。

面向对象编程,用Hibernate。

评论0 赞同0
  •  加载中...
mindwind

mindwind

回答于2022-06-28 14:13

当你理解了jpa规范那一套以后 就真的不想用mybatis了 特别是项目中使用ffffd

评论0 赞同0
  •  加载中...
bergwhite

bergwhite

回答于2022-06-28 14:13

国内有段时间也流行过hibernate,但大多到后期,觉的不好优化。还是觉的mybatis可控,符合国情呗,但为了对付mybatis这个半成品,业界也推出了不少增强框架:mybatis plus, tk mybatis, mybatis enhance。 这些产品有不少优点,但也都没有办法彻底解决问题。

最近有个新兴起的增强框架, fluent mybatis,吸收很多框架的优点,既有jpa的方便,又保持了可以自己编写sql的原始掌控能力。

同时有很多增强的特性:分页处理,租房处理,嵌套查询,联表查询,多数据库兼容处理,fluent语法。

https://gitee.com/fluent-mybatis/fluent-mybatis

https://mp.weixin.qq.com/s/jlcWt_1zbksDgncVr64nqA


评论0 赞同0
  •  加载中...
hizengzeng

hizengzeng

回答于2022-06-28 14:13

国内人多,用户量大,必须要mybatis来优化sql。国外大部分网站人不多,hibernate更效率,国外的大型网站依然是mybatis,不过嘛大型毕竟只有那几家,所以国外hibernate是主流。

评论0 赞同0
  •  加载中...
aisuhua

aisuhua

回答于2022-06-28 14:13

因为中国人多,数据量大,业务变化快,设计人员水平问题,时间紧,这些层层叠加起来就让头部程序员选择更灵活的mybatis,然后他们写出各种文档,后辈们自然跟风,难道我放着中文不看去看英文资料?

评论0 赞同0
  •  加载中...
宋华

宋华

回答于2022-06-28 14:13

1:持久层只是个工具,不要太在意。

2:中西方思考方式还是有比较大的差已的,不要以自己当前的环境考虑别人的选择

3:如果是数据库编程为主的团队,mybatis还是不错的,毕竟这种团队选择它,不是自己决定的,而是市场环境之必然

评论0 赞同0
  •  加载中...

最新活动

您已邀请0人回答 查看邀请

我的邀请列表

  • 擅长该话题
  • 回答过该话题
  • 我关注的人
向帮助了您的网友说句感谢的话吧!
付费偷看金额在0.1-10元之间
<