自己写的service可以调basemapper也可以掉mybatis-plus中的service,有没有统一的规则?
自己写的service可以调basemapper也可以掉mybatis-plus中的service,有没有统一的规则?
一般是在控制器里调service,service里调mapper。没有要求说你非得在一个地方写service和basemapper,只是说这样降低Controller(视图层)-Service(业务层)-mapper/dao(持久层)的耦合度,逻辑上也比较清晰明了,修改的时候你就知道改视图相关就到Controller里改,改业务相关就到Service里改,改数据库操作相关就到mapper/dao里改。
如果你的需求足够简单,比如你只需要在Controller里做一个简单增删改查的操作,就调通用service就完事了。同样的道理,比如你的service里需要用到很简单的参数/无参数来实现增删改查,那你就可以调basemapper。如果需求比较复杂,那就可以Controller里有N多个service、service里有N多个其他service还有basemapper。
这完全是一种约定俗成的事,持久层就关注数据的操作,而业务层就把这些操作组合起来形成你的业务。一般就习惯在 Service 中注入你需要的 Mapper 对象,通过 Mapper 对象来完成 CRUD,当然,如果你喜欢你也可以直接用 Service 当前对象的方法,比如你遇到需要批量插入或批量更新的需求,那么你显然可以直接用 Service 提供的批量操作的方法,因为 Mapper 中没有提供。
8 回答6.6k 阅读
4 回答715 阅读✓ 已解决
2 回答3.4k 阅读
1 回答2.6k 阅读✓ 已解决
5 回答1.5k 阅读
3 回答1.9k 阅读✓ 已解决
1 回答2.2k 阅读✓ 已解决
建议用到
BaseMapper
这一层即可。Service
根据需求来创建