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

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

mapper, SQL, service, mybatis

luoyonghao   
还得是通过 service 调用。
wander555   
无所谓其实,消耗最大的还是 SQL 本生的执行
kerb15   
个人项目在 controller ,团队项目在 service
xiaolongorigino   
我认为还是通过 Service 调吧,但如果你真的确定这个 SQL 怎么都不会有多个 SQL 操作这种事务需求或者未来对其处理也不会做什么变更,直接调也没人会说你,小细节
lawsiki
OP
  
@xiaolongorigino 都是查询统计的 SQL
msaionyc   
放 service 层可以复用,可以很方便地做事务控制。如果确定没有其他场景用这个 sql ,放 controller 里也行,能过 cr 就行
Rocketer   
我们 controller 只负责校验和转发接收到的数据,任何处理都在 service 层
james2013   
放在 service
如果闲麻烦,可以用插件或者工具一键生成 controller,service,service 实现类,mapper,实体类等
dayudayupao   
抽一层的目的只是为了解耦和更好的抽象,不要被这个局限了,但是也不能不要,根据情况自己调整,有强制规范就按规范来,没强制规范自己能看懂能维护就行
您需要登录后才可以回帖 登录 | 立即注册

返回顶部