service层返回值咨询

咨询几个简单的问题,希望能得到各位的指点,谢谢!
1、service层操作dao的inser、update、delete方法是否需要返回boolean类型呢?判断dao返回的影响行数大于0当做成功?还是说不判断,controller拦截到异常就当成是失败、否则成功?
2、service层调用多个dao,比如新增用户,需要调用dao中插入用户基础表、插入用户认证表、插入用户扩展信息表,每调用一次dao判断返回为0按上面问题中的办法处理(返回0直接return false或者抛异常?),还是不处理、controller拦截到异常就当成是失败?

阅读 4.7k
1 个回答

1.1
insert update delete 更加建议返回条数,返回 boolean 也不是不行,只不过在某些场景下数字的应用情况更多
1.2
controller 拦截到异常可以当成是失败,封装成和失败一样的格式,可以用 code 区分是正常业务异常还是未知异常

2
insert 不用考虑这个问题,基本上不会返回0,它只有成功和失败,失败一般是缺少必须字段、外键不正确等,因此是:不处理、controller拦截到异常就当成是失败。
如果是 delete,条数不正常,取决你的业务是否允许,必须你要删除 10 条数据,结果返回数字是 9 条,还有一条是不是就可以算了?
如果是 update 结果为 0,一般是不正常的,表明这条数据不存在,可能是前台返回的 id 不正确,这种情况就是明显的业务异常,应该返回失败或者抛出一个已知的业务异常给前台

PS: 你的很多问题,问的其实都很有道理,但是这个只依靠网上的答案是没法完全解答的,因为业务和实际情况只有你最清楚,我做的解答也只是自己平常情况下遇到的一种解决方式,它只能在一次次实践中找到最适合自己的答案,久而久之,你就能够选择出在不同场景下的最优解。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题