今日浅浅一问:MyBatis-Plus中在Service接口已经实现了常见的CRUD操作,但仍然需要去实现Mapper层的CRUD操作,为啥?

对于上述问题我将从以下几点回答:

1.定制化需求

  • 有的时候可能需要对数据库进行更精细的操作,例如自定义复杂的查询条件、处理特殊的数据类型给转换、执行特定的数据据库函数等。Mapper层提供了更底层的操作接口,可以更好的满足这些定制化的需求。
  • 例如:当我们需要多个复杂的联合查询时,Service层的默认方法无法提供,我们就需要在Mapper层自定义。

2.性能优化

  • 对于某些对性能要求极高的操作,可直接在Mapper层编写原生的SQL语句,以获得更好的性能优化。
  • 例如:在处理大规模数据分页查询时,可能需要根据数据库的特点编写特定的分页SQL来提高查询效率。

3.数据一致性和事务控制

  • 在处理涉及多个表或复杂业务逻辑的操作时,可能需要在Mapper层直接控制数据库操作的顺序和事务的边界,以确保数据的一致性。
  • 例如:一个业务场景中,需要先更新一张表的数据,然后根据更新结果决定是否插入或删除另一张表的数据,在这种情况下Mapper层进行精细控制会更合适。

4.代码的可维护性和可读性

  • 将特定的数据库操作逻辑封装在Mapper层,可以使Service层的代码更加简洁,更能专注于业务逻辑,从而提高代码的可维护性和可读性。
  • 另外,当数据据库操作逻辑发生变化时,只需要修改Mapper层的代码,而不会影响Service层的业务逻辑。

总结,虽然Service层的CRUD操作提供了方便和常用的功能,但Mapper层为开发者提供了灵活性的控制,以应对更复杂的业务需求和性能优化场景。

  • 10
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值