各位 V 友,大家日常开发中,还有使用 mybatis 的框架的吗?
google 了下,发现流行的框架中基本看不到他的影子,但是在传统行业的工作中,感觉还是用到的很多,来到 v 站问问广大的 v 友日常使用的还算多吗?
1
ghost024 2023-04-12 17:03:13 +08:00
肯定多啊,小厂和中厂都在用吧
|
2
leozzf 2023-04-12 17:03:14 +08:00 via Android
现在还在用 XML 真的该淘汰了
|
3
zero47 2023-04-12 17:03:58 +08:00
国内还是主流吧,都喜欢写 sql
|
5
chihiro2014 2023-04-12 17:04:59 +08:00
国内难道不是 mybatis/mybatis-plus 一把梭么。
用 JPA/hibernate 的不多。 其次可能是 JOOQ 这种冷门框架。 或者也有佬喜欢 JDBC 原生一把梭。 |
6
urnoob 2023-04-12 17:05:37 +08:00
xml 中拼 sql 多么简单粗暴.....不是挺好么 现在都用什么?
|
7
mineralsalt 2023-04-12 17:06:38 +08:00
MyBatis Plus
|
8
leeraya 2023-04-12 17:10:32 +08:00
java 业务系统 ORM 基本都是 mybatis ,适合梭哈。
|
11
kongkongye 2023-04-12 17:13:41 +08:00 via iPhone
@urnoob 前端一堆搜索条件输入框的,mybatis 里方便实现吗?
|
12
L0L OP @mineralsalt mp 用起来,确实能提升效率
|
13
L0L OP @chihiro2014 mp 做的确实不错,直接用起来还是很嗨
|
14
Richardhtw 2023-04-12 17:15:17 +08:00
所以现在主流的在用什么
|
15
muchenlou 2023-04-12 17:15:59 +08:00
op 用的是什么呢?我比较喜欢 mybatis-plus
|
16
cheng6563 2023-04-12 17:16:08 +08:00
@kongkongye 这种乱拼 SQL 的需求还就 Mybatis(-plus)好实现,换其他的硬 ORM 还更麻烦
|
17
L0L OP @Richardhtw https://rollbar.com/blog/most-popular-java-web-frameworks/ 搜了几个排名基本和这个差不多,hibernate 看起来用的群体很大。
|
19
MonkeyJon 2023-04-12 17:20:47 +08:00
mybatis+mybatisplus
|
20
yule111222 2023-04-12 17:22:21 +08:00 2
不用了,我用 kotlin 和 ktorm
|
21
CloudnuY 2023-04-12 17:24:43 +08:00
蹲个大厂的方案,刚好近期要重新做一套我司的基础框架
|
22
bugmakerxs 2023-04-12 17:25:13 +08:00 1
玩具项目 JPA ,公司项目 mybatis 。简单逻辑 JPA 快一点
|
23
BBCCBB 2023-04-12 17:26:36 +08:00
不用 mybatis 用什么... mybatis 上面的扩展, mybaits plus 这种, 就很好用..
其他的 orm 拼 sql 的时候没有这么灵活的.. |
24
BBCCBB 2023-04-12 17:28:43 +08:00
其他各种 orm 的 dsl 写起来感觉表现力始终不如 sql 简单快捷清晰?
|
25
L0L OP @muchenlou 第一家公司是魔改的 mybatis ,然后为了和产品一起卖的;现在的公司用的 mybatis+mybatis-plus ,复杂的报表需求,一个语句出来就很爽。
|
27
28Sv0ngQfIE7Yloe 2023-04-12 17:35:29 +08:00
坐标千人小厂
Java 还是 Mybatis + Mb-plus |
28
chenPiMeiHaoChi 2023-04-12 17:37:16 +08:00
在写 webflux ,用 r2dbc 。
|
30
wellerman 2023-04-12 17:41:56 +08:00
mybatis-plus 啊,基本不用写 sql
|
31
yty2012g 2023-04-12 17:43:51 +08:00
To C 的服务,我们一般使用 JDBCTemplate 。To B 的服务,MyBatis 、Spring Data JPA 都有使用。
|
32
zoharSoul 2023-04-12 17:45:29 +08:00
国内大厂都在用
|
33
dwlovelife 2023-04-12 17:50:00 +08:00
坐标狗东 Mybatis+MybatisPlus , 现在最流行的框架就是 Mybatis 了,有什么更牛逼的解决方案?
|
34
wetalk 2023-04-12 17:57:55 +08:00
基本上用 Java 这套体系的,都是 MyBatis + plus ,其他的不灵活,或者代价过高
|
36
cedoo22 2023-04-12 18:06:15 +08:00
OP 用的 google trends 是不是和我不一样?
https://trends.google.com/trends/explore?q=%2Fm%2F0fqmvs4,%2Fm%2F026dw9m,%2Fm%2F04t80p&hl=zh-CN |
37
witcherhope 2023-04-12 18:17:33 +08:00
都可以吧,做好防腐隔离,别让 orm 污染业务层就好
|
38
renyijiu 2023-04-12 18:27:46 +08:00
最近几年一直用 jooq ,开发者异常活跃
|
39
L0L OP @cedoo22 我是搜索的统计的排行榜;国内用 mybatis 的还是很多的; hibernate 的总量是比 mybatis 多的。
|
40
L0L OP @renyijiu jooq 目前在尝试;所在行业要求大改造,大量的 Oracle 需要转换成 mysql ,在使用 jooq 提供的转换功能。
|
41
EminemW 2023-04-12 20:25:39 +08:00
@kongkongye #11 mybatis 可以在 xml 里面写 IF 判断,方便的很
|
42
oneisall8955 2023-04-12 20:32:48 +08:00 via Android
@kongkongye 成熟的 orm 框架都支持
|
43
luzemin 2023-04-12 20:36:36 +08:00
mybatis +1
|
44
beginor 2023-04-12 20:38:28 +08:00 via Android
最近实现了个类似 mybatis 功能的后台 api 系统,在数据库存储 xml+sql ,用户可以在线上定义参数,配合编写 xml+sql 来定义 api 🤭
|
45
volatileSpark 2023-04-12 20:44:24 +08:00
Google 趋势的数据值得参考,国内目前肯定是 mybatis/mybatis-plus 居多,国外则是 JPA/hibernate 居多。
|
47
ychost 2023-04-12 20:53:25 +08:00
主要是 JAVA 不支持 C# 那样的语法树,不然有 LINQ 就美滋滋了,除了 LINQ 其它 ORM 都一个样
|
48
hhjswf 2023-04-12 21:33:02 +08:00 via Android
还有其他更好方案吗。我不喜欢用 querywraper ,稍微复杂点就不够直观
|
49
KevinBlandy 2023-04-12 21:35:32 +08:00
spring-data-jpa + queryDsl 或者 Jooq 。这种编程式 SQL 太爽了,比 mybatis 这种手写 SQL 不知道高到哪里去了。
顺便推荐一波 spring-data 系列的中文文档。 [https://springdoc.cn/]( https://springdoc.cn/) |
50
k9990009 2023-04-12 23:20:20 +08:00 via Android
用 mybatis-plus ,流行的低代码都用这个,很好做前后端的查询封装。刚试用 mybatis-plus-jion 这个联表查询插件
|
52
si 2023-04-13 00:05:23 +08:00
在用 mybatis-plus
|
53
silentsky 2023-04-13 01:00:05 +08:00 via Android
就一点 mybatis 写的 SQL 方便查找定位 其他框架 出问题了 你都不好找
|
54
potatowish 2023-04-13 01:17:33 +08:00 via iPhone
必须是 mybatis plus
|
55
suyabgaran 2023-04-13 01:22:03 +08:00
国内还是 Mybatis 、Mybatis-plus 多。但是我现在都用 JOOQ ,写起来真的很爽,我是挺不喜欢 Mybatis 这一套的。
我看好多人推崇 mybatis-plus ,说基本不用写 sql ,但如果是为了不写 sql 才用 mybatis-plus 那为何不直接用 jooq 呢(疑惑)? jooq 其实更加容易调试,而且条件判断可以直接用 Java 来搞定,而且不用定义一堆 xxxMapper 和 xml ; 复杂的查询,用视图或者多次查询+后端处理就好了呀。 至于更加复杂的查询,其实用 mybatis 也好不到哪里去吧? |
56
LeegoYih 2023-04-13 01:46:43 +08:00 7
|
57
PVXLL 2023-04-13 02:12:38 +08:00 via iPhone
mybatis 狗都不用
|
59
nnegier 2023-04-13 04:44:30 +08:00 via Android
之前用 JPA ,现在回到 MyBatis 了
|
60
billccn 2023-04-13 05:11:23 +08:00
老实说 YAML 根本不应该算 Markup Language ,因为它的语法只在行首,字符串里面是没有标记能力的。
像 MyBatis 需要的在 SQL 中间动态插入标签的能力 YAML 无法胜任,硬要用的话还得自己造轮子。 设想这样的 SQL 模板语言要多少行才能写完一个复杂的查询?而且要在从 SQL 工具之间复制已经调好的查询,手工处理量非常大,等于人工做了个 lexer 。 ``` - "SELECT" - if: ...条件... then: COL1 - "FROM t WHERE rownum <" - eval: ...表达式... ... ``` XML 就写得很好读: ``` SELECT <if test="条件">COL1</if> FROM t WHERE rownum < #{id} ``` |
61
dreamramon 2023-04-13 08:10:53 +08:00
jooq 一直用,mybatis 太慢了。
|
64
leimu012 2023-04-13 09:01:02 +08:00
我干过的项目一般都是 mybatis+mybatis-plus
|
65
gowk 2023-04-13 09:01:38 +08:00
Java 还在玩 MyBatis MyBatis-Plus 这些上古的屎玩意,真让我感到恶心
宁可用 JPA ,虽然 JPA 用的菜,心智负担重,我怎么就对 Java 这些重框架喜欢不起来呢 都是 CRUD 写业务的居多,用 .NET 不香吗,C# 语法太他妈爽了好嘛!! 贴个图 (doge https://imgur.com/lYFSbjA |
67
gowk 2023-04-13 09:02:25 +08:00 3
|
68
hb0730 2023-04-13 09:03:47 +08:00
公司要用啥就用啥,自己的想怎么用就怎么用
|
69
Goalonez 2023-04-13 09:11:53 +08:00
用了 mybatis,靠自动生成代码,不太需要写基础 sql 和 if 条件.
没有用 myabtis-plus,不太喜欢在业务层一堆查询语句 |
70
lazyfighter 2023-04-13 09:13:32 +08:00 1
多, 国外普遍用 hibernate 、jpa ,但说实话 hibernate 我觉得太厚重了,jpa 还是不错的,不过一直没有在实际的生产项目中使用, 我比较推崇简单,这个简单不是单纯的 coding 量比较少,而是回归事务本身,以极简的架构、抽象方式去实现项目, 类比于 sql 就是要回归于 sql 语句本身,可见的 sql ,同时再将存储层很好的抽象隔离,所以我觉得 mybatis 本身实现的不错,以至于我搭建的项目都还在用 mybatis ,至于 mybatis-plus 我一向不推崇,这个项目在我看来抛弃了 myabtis 的精髓
|
71
tairan2006 2023-04-13 09:19:39 +08:00
idea 装个插件,写 mp 爽的一批,比在代码里拼 SQL 爽多了
|
73
wanguorui123 2023-04-13 09:19:54 +08:00
mybatis 和 hibernate 都用,我更喜欢 hibernate 根本不需要手动连表查询,而且缓存和更新机制底层做的比较完善,其次是 hibernate 迁移数据库非常方便。
|
74
dif 2023-04-13 09:24:31 +08:00
那肯定在用了,而且在 ORM 中算用的最多的。
另外,@gowk .NET 语法爽是爽,生态不行,覆盖面太低。mybatis 也不是什么上古屎玩意,能做出业务,能挣到钱,成本低,bug 少,安全漏洞很少听到,这就是优点。 |
75
undefine2020 2023-04-13 09:26:04 +08:00
@gowk 那干嘛不用 php 呢 不更爽。
|
76
Procumbens 2023-04-13 09:27:23 +08:00
在国内的论坛问的话就是大部分都有 MyBatis 。
就像在国内用的前端框架 Vue 也应该比 React 多 |
77
ysq 2023-04-13 09:29:04 +08:00
@LeegoYih JPA 注解里写简单语句还行,多行的语句时就很麻烦,无论是粘贴还是复制出来调试都没找方便的方式,最坑的是 在事物里 默认的 SQL 语句竟然不是按代码顺序执行的,排查了好久才找到原因,参考这个 https://blog.csdn.net/weixin_36795183/article/details/100574823
|
80
gongquanlin 2023-04-13 09:39:36 +08:00
laravel 转的 spring ,php 框架里的 orm 都是和建造者模式似的调用,写起来很爽,运维起来苦逼的不行
|
81
senx0000 2023-04-13 09:41:50 +08:00
现在在用 mybatis-flex ,结合了 querydsl 和 mybatis
https://imgur.com/frjRmK7 |
82
senx0000 2023-04-13 09:43:25 +08:00
|
83
sqmwin 2023-04-13 09:47:18 +08:00 4
为什么都把 sql 语句通过 java 实现觉得很优雅?不应该把 java 和 sql 明确分开吗。一直觉得在 java 里面写 sql 很难维护
|
84
wxlwsy 2023-04-13 09:51:46 +08:00
我在用 dynamicsql, 比 xml 好些.
|
85
nothingistrue 2023-04-13 09:53:39 +08:00
@L0L 搜索引擎趋势,没多大意义。google 中文搜索已经废了,它的趋势基本只能反映国外,和国内的“会用 google 或英语的人”的领域。另一方面,不管是 MyBatis 还是 MyBatis Plus ,它的特点就是简单——框架本身和使用框架都简单,这也就注定了它没啥可搜索的,自然也上不了搜索引擎趋势。
至于框架的选择,搭配上 Spring Data Jpa 之后,Jpa/Hibernate 体系,门槛已经小很多了,现在各项比较都是碾压 Mybatis 系列。只不过国内螺丝大厂已经积重难返了。你必须会一份门槛低的东西,以方便到大厂拧螺丝。但如果你是个人开发,以及真正的技术性小团队开发,那还是 Spring Data Jpa 一步到位。 |
86
tilv37 2023-04-13 09:57:41 +08:00
目前人在外企,我们一般都是 JPA ,国外同事一般也是 JPA 。
不过确实没有遇到一个查询需要写超过 30 行 sql 的,所以 JPA 完全够用了 |
87
nothingistrue 2023-04-13 10:01:24 +08:00
@lazyfighter #70 这个建议你连 Java 也别用了,直接用 SQL 再套个简单的 Javascript 前端就够了,SQL 本身就能用存储过程做逻辑开发的。
@ysq #77 JPA 也可以用 XML 写 JPQL ,只不过不是主流,仅有一些特定情况才会需要写多行语句。 |
88
LeegoYih 2023-04-13 10:36:15 +08:00
@hhjswf #72 QPredicate 封装好了可以自动判空,没有联表的条件会自动去掉 join
MyBatis XML 判空每个都要写一遍<if test="">,循环要写<foreach item="">,要实现下面的 SQL 至少得写一页 XML |
89
javlib 2023-04-13 10:52:34 +08:00
mybatis 的优点是手写 sql 方便,而且提供了一些简单的控制语句,动态 sql 也能搞定。而且在 xml 写的 sql ,已经很接近最终 sql ,找问题的时候也比较方便。
选择 jooq 或者 hibernate ,主要是想要类型安全。mybatis 只有在运行起来后,才能发现自己的 sql 对不对。不过这个也可以改善,可以写插件在单元测试中导出 sql ,然后用 sqlparser 校验 sql 的正确性。 |
90
lazyfighter 2023-04-13 10:59:12 +08:00
@nothingistrue 嗯 你说的对~
|
91
hankli 2023-04-13 11:19:17 +08:00
JPA 和 Mybatis 都用
配合 Github Copilot 写 Mybatis 也很舒服了现在,所以说 mp 是真的鸡肋! |
92
witcherhope 2023-04-13 11:30:45 +08:00
@LeegoYih #56 这代码看着也不怎么直观,加上 Java 本身表现力不足,强行上 DSL 只会增加通用理解成本,Mybatis 固然有缺点,但简单无黑魔法让它更容易接受和推广。
|
93
xuanbg 2023-04-13 12:18:33 +08:00
一直用 Mybatis ,但从来都不写 xml 。都是直接 @Select("select xx from xx;")这样的注解
|
94
wqzjk393 2023-04-13 12:27:48 +08:00 via iPhone
前数据分析师,日常工作就是折腾上万行的 sql 脚本,所以不喜欢在开发中还用 sql 干活,基本上 jpa 一把梭了
|
95
Huelse 2023-04-13 13:16:35 +08:00
|
96
lanlanye 2023-04-13 13:24:45 +08:00
ActiveRecord, SQLAlchemy 使用者前来围观……朋友一直说 Hibernate 过时了,Mybatis 更好,看来并不是这样?
|
97
runliuv 2023-04-13 13:28:58 +08:00
C# EF 一把梭。
|
98
xiaocaiji111 2023-04-13 13:29:14 +08:00
谁说 mybatis 就一定要写 xml 。另外 xml 里面语法古板,带来得好处就是看着清晰。很多 sql 静态分析工具在代码上线钱可以扫描 sql 是否存在问题,其他得运行时生成 sql 得 orm 框架,怎么做分析呢。只能全部跑出来在分析吧。
|
99
suyabgaran 2023-04-13 13:29:16 +08:00
@lanlanye ActiveRecord 好啊,我也想学 Ruby 和 Rails
|
100
wolfie 2023-04-13 13:34:28 +08:00
|