mybatis-plus到底什么时候用baseMapper什么时候用service中的方法?

自己写的service可以调basemapper也可以掉mybatis-plus中的service,有没有统一的规则?

阅读 3.5k
3 个回答

建议用到BaseMapper这一层即可。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 中没有提供。

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