为何不选 Hibernate,非要 MyBatis?

2024-01-26 11:15:02 +08:00
 dc2002007

###一直不能理解 Hibernate 这么优秀的 orm 思想框架,为什么这么多项目还选择了在 xml 里写 sql 的 MyBatis ,求解惑?

当然我首先是不能接受在 xml 里写 sql 这种行为的!
orm 不够优秀吗?
18532 次点击
所在节点    Java
130 条回复
aLazarus
2024-01-26 11:18:16 +08:00
那你怎么看待在 java 中写 hql 呢
pigeon2049
2024-01-26 11:18:50 +08:00
方便基于 velocity 生成代码
如果你用过 ruoyi 之类的框架,实际上大多数情况你只需要数据库里建好表,页面上导入
自动生成实体 bean/mapper/service/serviceimpl/mapper.xml/controller/前端 vue 代码
murmur
2024-01-26 11:19:09 +08:00
因为简单的 curd ,hibernate 都不需要了,拖拉拽自动生成,等写复杂报表,权限,表联合的时候就得手写 sql 了
JerryYuan
2024-01-26 11:19:21 +08:00
大概是 hibernate 不能方便的跨几个表联查/用 sql 的骚操作?

PS:可能只是我不知道怎么搞
Goooooos
2024-01-26 11:20:24 +08:00
为什么别人喜欢还要告诉你原因?
dc2002007
2024-01-26 11:21:48 +08:00
@aLazarus hql 在 java 里写还是可以接受的,毕竟起初就是写在代码里的
dc2002007
2024-01-26 11:22:13 +08:00
@Goooooos 你是第一嘲讽的,我很开心
zzzkkk
2024-01-26 11:24:35 +08:00
web 开发的本质就是 sql 增删改查 hibernate 之流等于脱裤子放屁
potatowish
2024-01-26 11:29:16 +08:00
现在用 MyBatis 的都是用 MyBatisPlus 吧,既能不写一行 SQL (单表),又支持手写 SQL (联表、动态 SQL ),直接用原生 MyBatis 的都是上古项目了
gejun123456
2024-01-26 11:29:32 +08:00
hibernate 学习曲线高,没点经验容易出问题,mybatis 简单直接,稍微学习就会了出错概率小点,缺点是关联关系的时候需要手动操作的地方多点,可以试试 idea MybatisCodeHelperPro 插件,xml 写 sql 都有代码提示,写起来方便很多。
yooomu
2024-01-26 11:33:24 +08:00
因为在多人合作的大型项目中,每个人水平不一。Hibernate 过重,黑箱过多,能完全掌握的人并不多,一旦出现问题难以定位。而原生 sql 简单,是个后端就会写,方便优化。用面向对象的方式操作数据库确实很爽,但是大型项目需要保证下限,再爽也没用,况且 mybatis plus 操作单表也不用写 sql
Goooooos
2024-01-26 11:34:50 +08:00
@dc2002007 这是反问,不是嘲讽
如果这算嘲讽,那你心理预期有点低
yooomu
2024-01-26 11:35:45 +08:00
@yooomu 配合现代 IDE 加持,xml 中写 sql 也没什么不好,智能提示,语法检查一应俱全。在一堆项目都是 java8 ,不支持多行字符串的情况下,你难道想在 java 代码中写 sql 吗
dc2002007
2024-01-26 11:36:38 +08:00
@Goooooos 剧情发展所需,凑个数而已!
issakchill
2024-01-26 11:37:05 +08:00
完全赞成 11 楼说法
jpa 那套不钻研一下 写出来的太多坑了
sunwei0325
2024-01-26 11:43:13 +08:00
除非你新开项目, 能说服其他成员, 否则老项目你也不敢动这个啊
Bingchunmoli
2024-01-26 11:51:20 +08:00
不会 ssh 只会 ssm ,所以用 mybatis
goodblue
2024-01-26 11:59:12 +08:00
因为在某个阶段,大家都在追求效率,满足扩张业务,堆人也更好堆
totoro52
2024-01-26 12:00:21 +08:00
现在除了老项目,新项目应该会首选 mybaitsplus 吧? 建议楼主体验一下 plus 版本就知道多爽了
纯 mybaits 确实痛苦,但我感觉这种痛苦只是存在简单的项目
换个思路想,为什么非要在他们两者去选? 简单的项目 Hibernate , 复杂的项目我绝对 mybatis ,不过现在我都用 plus , 等于两者一起用了
version
2024-01-26 12:03:44 +08:00
单表 JPA 那套确实没问题.也就适合国外单一需求
国内大融合需求..啥功能都要..基本拍版就改..不写 sql.很难存活.

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1011737

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX