针对复杂 SQL 查询,是直接在 controller 层调用 mapper,还是要包装一层 service?

2023-08-25 10:24:29 +08:00
 lawsiki

项目中存在挺多这种情况,mybatis querywrapper 无法满足,需要手写 SQL ,但没有其他逻辑,或者比较简单的一些数据转换逻辑,每个都封装一个 service 方法感觉很多余,但是直接穿层调 mapper 好像又不合理,大佬们是怎么处理这种情况的?

3080 次点击
所在节点    程序员
23 条回复
fkdog
2023-08-26 17:55:52 +08:00
复杂 sql 指的是?
除了大部分 db 内置函数、聚合统计,大多数涉及到多表 join 的都可以交给代码完成。
qtxxm
2023-08-26 20:48:04 +08:00
之前我都放入 service , 最近开发一个小项目,为了方便就 controller 直接调用 Mapper 查数据了,针对列表页上的数据查询。当然,尺度把握不好就乱套了。小团队需要内部沟通好,规模复杂度上来了,可以考虑放到 service 层。
当然,新增修改删除之类的,还是放在 service 层的。
layxy
2023-08-29 09:20:23 +08:00
service 做业务逻辑处理,controller 不要放太复杂的逻辑,尽量保持 controller 简单

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

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

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

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

© 2021 V2EX