Java 项目中对于单一的特定 DB 操作需要用 Service 层包装吗?
source link: https://www.v2ex.com/t/798624
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
抛开 BaseService 这种封装了通用操作的类,对于一些特定的更新或查询
比如一个复杂的 SQL,但是只有一个接口会使用,这个时候是需要包装一层 Service,在 Controller 调用 Service,还是直接在 Controller 中注入 Dao 使用?(专业名词好像叫穿层??)
chendy 17 小时 16 分钟前
至于要不要给 Controller 注入 dao,对于一次性的 /简单的 /无所谓的东西,直接在 controller 里写 sql 都无所谓,否则老老实实分层
lawsiki 17 小时 14 分钟前
golangLover 16 小时 14 分钟前
你的意思是 service 里面直接用 dao 不是很好?
amoyiki 15 小时 46 分钟前
多个调用只需要改一次 Service 层的方法即可,
如果 Controller 层直接从数据库中获取数据,后期修改可能就要改多个地方了
lychs1998 13 小时 13 分钟前
比如下面的几种情况:
1.某个类的某些字段不允许为空。那么校验方法是在 Dao 层提供的,并且在 insert 和 update 时强制性调用这个方法去校验数据。
2.某个类的数据库应该是 A 数据库,另外一个类是 B 数据库,多数据源时 Service 层不应该关心这个,这些也是 Dao 层去配置和处理的。
3.业务需要逻辑删除,Dao 层在处理 Service 层传入的查询条件时,自动加上逻辑删除的判断条件(如果需要读“被删除”的数据,则额外提供接口),在保存 /删除 /更新数据时,自动处理为逻辑删除的方式。
kimifdw 8 小时 34 分钟前
wiix 6 小时 51 分钟前
ikas 5 小时 40 分钟前
假设你将 dao 直接注入 controller,那么你的 dao 就需要自己处理异常 /回滚.如果你的 dao 中有两条 db 操作,那么你自己处理事务的代码,还不如写个 service 方便
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK