能不能别用那烦人的 MyBatis-Plus 了!

2025 年 12 月 4 日
 reavid

刚刚 clone 公司的项目代码,看到一堆的 Wrapper 真的绷不住了。好好的在 xml 里面写 SQL 不好吗?非要在 Service 写那么多和业务无关的东西,代码看得我头大。

@Override
public int deleteByColorId(Long colorId,String userCode) {
    LambdaUpdateWrapper<ColorLibraryFile>  updateWrapper = new LambdaUpdateWrapper<>();
    updateWrapper.set(ColorLibraryFile::getDeletedFlag,DeletedFlagEnum.DELETE.getCode());
    updateWrapper.set(ColorLibraryFile::getDeletedBy,userCode);
    updateWrapper.set(ColorLibraryFile::getDeletedTime, new Date());
    updateWrapper.eq(ColorLibraryFile::getColorId,colorId);
    updateWrapper.eq(ColorLibraryFile::getDeletedFlag,DeletedFlagEnum.NORMAL.getCode());
   return colorLibraryFileDao.update(null,updateWrapper);
}

3354 次点击
所在节点    Java
17 条回复
itechify
2025 年 12 月 4 日
有人喜欢,有人讨厌,不做评论
itechify
2025 年 12 月 4 日
更感觉是代码规范问题,数据库持久层写在 Repository/DAO 里面吧
codingerj
2025 年 12 月 4 日
我遇到过挺多这样写代码的人,给我的感觉就是会这么写的这辈子都写不出优雅易读的代码,干这行纯是混口饭吃
reavid
2025 年 12 月 4 日
@itechify #2 也可以直接写在 xml 里面呀,没必要特意再封一层吧。
fj19
2025 年 12 月 4 日
你写在 dao 层怎么了,要啥 xml
bjfane
2025 年 12 月 4 日
不懂就问,mybatis-plus 这么写能不能平滑切换 mysql 和 postgre ? 如果是 sql 的话 有的是不是不行?
v2306
2025 年 12 月 4 日
Ketteiron
2025 年 12 月 4 日
这段代码确实很垃圾,明明一行链式就搞定。
mybatis-plus 我觉得没什么问题,在复杂动态条件拼接与类型安全上远胜 xml 。
但受困于 java 的表达能力,写起来确实有点折磨。
23wEJhKrPYz2uRF5
2025 年 12 月 4 日
java 就没有好点的 orm 了吗?
imesrdfi8dzs
2025 年 12 月 5 日
单纯是这段代码写得废话多而已。和 ORM 无关。
这种老哥写 sql 也更是灾难。
kerwin1874
2025 年 12 月 5 日
我是反过来了,看 xml sql 看得头大,单表 crud 用 mybatis-plus 确实好使,不想在 service 写 wrapper 那就再开一层封装起来
florentino
2025 年 12 月 5 日
垃圾 sql, 狗都不碰, 如果有什么更好的表意语言,我觉得可以完全抛弃 sql , 希望 Ai 早日可以用自然语言代替 sql 语句, 另外这段代码比 xml 的表达更直接,看一眼就知道在干嘛, 而且 idea 对于 xml 的格式化能力太弱了,虽然写的没问题,但是还是会给你红色高亮
looveh
2025 年 12 月 5 日
我这边看到一个 Controller ,一个方法近 200 行,起码有 150 行写的 wrapper.xxx()👴
finolaire
2025 年 12 月 9 日
@codingerj 急了急了,你妈生了你这个狗杂种,哈哈哈哈,狗杂种你全家怎么还没被车撞死,这个是你的 QQ 吧,哈哈哈
yxisenx
2025 年 12 月 9 日
@livid #14 骂人,他的历史回复也有挺多骂人的
Livid
2025 年 12 月 9 日
@yxisenx 谢谢。14 楼的账号已经被彻底 ban 。
xxbern
2025 年 12 月 10 日
这种查询代码可以放到 @mapper 接口 写成 default 方法,还有这种 service 一个萝卜一个坑的接口和实现,确实是规范问题

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

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

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

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

© 2021 V2EX