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条)

报告相同问题?

悬赏问题

  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改