各位 V 友,大家日常开发中,还有使用 mybatis 的框架的吗?
google 了下,发现流行的框架中基本看不到他的影子,但是在传统行业的工作中,感觉还是用到的很多,来到 v 站问问广大的 v 友日常使用的还算多吗?
101
zjsxwc 2023-04-13 13:51:11 +08:00
@billccn
yaml 是 json 的超集,完全兼容 json , 君不见那么多给予 json 的 orm , 用 yaml 做 orm 就更不在话下了, 比如 python 的 mlalchemy 就是 yaml https://pypi.org/project/mlalchemy/ |
103
RainCats 2023-04-13 14:26:11 +08:00
mybatis-plus 很舒服,简单 SQL 直接条件构造就完事了,复杂 SQL 丢 XML 里,谁来都能维护,甚至不需要懂 Java
|
104
dbpe 2023-04-13 14:34:16 +08:00 1
ebean 因为有 oracle 的需求..导致上不了 jooq..复杂查询在用 mybatis...(如果升到了 17...mybatis 我准备去掉他
|
105
BenX 2023-04-13 14:38:10 +08:00
Java 圈毒瘤
|
106
Leviathann 2023-04-13 14:45:24 +08:00
@lanlanye mybatis 所谓的新,和 go ( goroutine 以外的部分)所谓的新是一个意思
|
107
yifeng33 2023-04-13 14:57:31 +08:00
前司某里用的 mybatis ,现在用的 jpa 。感觉写复杂查询 jpa 比较累人,比如多表联查
|
108
Richared 2023-04-13 15:02:39 +08:00
@yifeng33 整不明白别用 jpa 级联查询,一个 byid 能让其他人崩溃。无脑吹 jpa 的都是玩具项目的玩具人。没有最好只有适合。
|
109
wenyuan5 2023-04-13 15:07:44 +08:00
|
110
cheng6563 2023-04-13 15:11:41 +08:00
Java 语言本身的表达能力本来就一坨,SQL 也是个极为拧巴的语言。用“Java 代码自动转 SQL”的方式来操作数据库有多别扭可想而知。
最好的方法还是自己处理好 SQL 喂给数据库,所以需要一个对 SQL 优化的模板引擎,那就是 Mybatis(-plus)了。当然,Mybatis 同类更优雅的库也有,但也拉不开大差距,而且 Mybatis(-plus)用的多好招人,那就选 Mybatis(-plus)咯。 |
111
shyangs 2023-04-13 15:22:59 +08:00 2
@Richared
Spring Data JPA 是商業公司出的項目。我相信 Spring 的眼光。一些玩具項目,像阿里巴巴的 Fastjson 吹上天,Spring 也只會內建 Jackson ,不會推薦玩具項目的。 |
112
lanlanye 2023-04-13 15:33:51 +08:00
@xiaocaiji111 #98 ORM 一般会提供只生成 SQL 不实际执行的功能,以供人在关键的地方编写测试来确保生成的 SQL 是正确的。不过这样的话就和手写 SQL 没什么区别了,所以如果追求每个 SQL 都测的话用 ORM 就没什么特别的优势,反过来说,不需要每个都测时它挺有用的。
|
114
astkaasa 2023-04-13 15:54:33 +08:00
spring data jdbc 很好用, 可以复用老代码的 xml
|
117
dog82 2023-04-13 16:48:28 +08:00
在 hibernate 里写 hql 就是脱裤子放屁,不如直接 sql 梭哈
|
118
witcherhope 2023-04-13 18:02:06 +08:00
@Huelse #113 但是相比 Mybatis 这种 Raw SQL ,即使没接触过框架,应该也能立马理解上手,这也算事优势吧,低协作成本;再者 SQL 本身就是面向过程的思想,强行用 Java 的 OOP 硬套就显得有点拧巴。
|
119
zhengzhongzhao 2023-04-13 21:28:11 +08:00
@zero47 最讨厌 sql 了,您的意思是?
|
120
outerws 2023-04-14 02:44:29 +08:00
楼上一个个都在脱裤子放屁,成熟的大并发服务下为什么阿里京东采用 mybatis ?因为它能撑得住流量经得住考验是成熟架构技术,一堆技术哪个不能开发业务逻辑?又有哪几个能支撑得住业务流量?不考虑流量我都按 10 并发来做还搞什么技术啊?一个数据库打遍天下得了
|
121
e7 2023-04-14 09:36:51 +08:00
不要以为大厂会紧跟新技术,稳定才是第一位的
|
122
MonkeyCoder 2023-04-14 10:33:47 +08:00
mybatis plus 用代码生成直接把 xml 的 CRUD 就搞定了有什么麻烦,剩下复杂的多条件查询和多表联查这些操作搭配 mybatis coder helper 插件很方便啊.不习惯把 sql 写到代码里
|
123
Aresxue 2023-04-14 10:35:53 +08:00
mybatis plus 做二开,java 对于 sql 这块目前没看到很好的管理方式,orm 框架在中型系统里面就开始捉襟见肘了,真的使用下来说实话用 xml 维护 sql 竟然还是目前综合性最好的方式( xml 的描述能力真的很强大),只是说 xml 在可读性上真的不好,针对这一点可以自己用别的协议重写这一部分,但 mybatis 本身也足够简洁了建议换个皮就行了,从 XXX.xml 换成 XXX.sql 把原先 xml 中的信息冗余消灭一下,但 xml 中绝大多数内容还是 sql 本身所以可优化的空间也很有限。sql 目前在编程语言里最好的实践感觉是 linq ,但 jvm 不支持动态编译函数所以没法抄作业。
|
126
chiyagao 2023-04-14 17:28:43 +08:00
看完后大家的评论,我感觉我是低级程序员。。。
|
129
PVXLL 2023-04-17 12:26:26 +08:00 via iPhone
@Richared 像你这种菜鸡 onetomany manytoone 都搞不懂的菜鸡不配和我讨论,乖乖面向你的 sql 编程,别出来丢人了
|
130
leatomic 2023-04-18 13:45:35 +08:00
@Richared 其实你大可直接一点,说说什么业务才不算你们口中的 demo 项目的,然后贴具体涉及的实体(关系描述就行),以及需要搞定的需求。包括你要吐槽的点,是实现不了,还是按你们的理解只能如何实现怎么个麻烦法,还是怎么个不优雅法。
|
131
Richared 2023-04-19 15:54:07 +08:00
@leatomic 我说的很明白了,就很简单一对多。我有 10 个数据源,每个数据源有 100 张表。每张表平均 10 个字段,实体有数据源,表元数据,字段信息。我 selectby 数据源 id 。
|
132
leatomic 2023-04-20 02:27:46 +08:00
@Richared 嗯,然后重点呢?“包括你要吐槽的点,是实现不了,还是按你们的理解只能如何实现怎么个麻烦法,还是怎么个不优雅法。”
|
133
Richared 2023-04-20 10:24:57 +08:00
@leatomic 写法重要么?当我只查数据源信息,或者需要此数据源下的所有表的元数据,或者需要查到表的字段。还没发现问题么?
|
134
leatomic 2023-04-20 11:50:57 +08:00
@Richared 这是你的需求是吧,那你要吐槽的点呢?是无法实现只提取必要的属性节点的吧?
如果是。把查询和命令区分开来,这种查询使用 EntityGraph 应该能解决才对,能说说怎么无法实现你的点在哪吗?当然实际开发中会使用 Spring ,结合其提供的 @EntityGraph 使用更方便; 鉴于你的查询条件单纯用 ById ,像 CriteriaQuery 、结合 QueryDSL 就没必要提了,如果不要求将结果组装成实体类型的,要返回 Projection 的话,无论 JPA(Hibernate)还是 Spring 也都有提供相关的支持的。 |
135
bthulu 2023-04-23 14:59:19 +08:00
@suyabgaran 我司全是 oracle, 也有免费的 jooq 用么
|
137
Richared 2023-04-25 15:44:15 +08:00
|