WitchSeele 2021-02-04 11:31 采纳率: 100%
浏览 87
已采纳

对dao层和service层来自新手的小疑惑

一直不太明白

一般说dao层只做基础的增删改查

那service层做逻辑的话就会调用很多次基础的增删改查,增加了许多数据库查询次数

上次就因为这事被组长说了一顿

然后组长改的是在dao层把增删改查加上逻辑的限制条件,这样就可以只查很少次数的数据库

但这样dao和service就感觉很混乱啊?虽然确实这样service层的代码可读性还更高了,毕竟调dao层很多次代码也不好看

eg.先需要查表a的全部和表b的一个字段,我是写了个select * from a,再写了个select x from b,然后在service调用;组长是只写了一个select,用left join 连起来的,service就只调用一个select

所以到底该以什么标准?这是他们公司特色还是正常来说都是这么写的?

  • 写回答

5条回答 默认 最新

  • 就是那个马冰冰 2021-02-05 15:55
    关注

    这么说吧.

    只要某种效果,你可以通过一条sql完成,那你就应该在dao层写.

    就这么简单的逻辑.

    service是把你一条sql解决不了的问题,进行逻辑拼装.

    比如你要查a.*,b.x,那么你完全可以通过join方式连接.

    除非a表是一个数据库,b表是另一个微服务下的数据库.

    这种情况,你可以分别获取.

    简单来说,dao层写的是sql代码.多复杂都行.

    如果你真的能一条sql搞定,那你没有service都行.

    service就是用来处理一条sql解决不了的情况.确实有点混乱.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 有偿求码,CNN+LSTM实现单通道脑电信号EEG的睡眠分期评估
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)
  • ¥20 matlab yalmip kkt 双层优化问题
  • ¥15 如何在3D高斯飞溅的渲染的场景中获得一个可控的旋转物体
  • ¥88 实在没有想法,需要个思路