MybatisPlus-Service接口

目录

一、概述

二、增删改查方法分析

三、service接口的基本使用


一、概述

MybatisPlus不仅提供了mapper接口,也提供了service接口,开发者可以继承这些service接口,这样,一些基础的增删改查代码就也不需要书写了。如下图:

二、增删改查方法分析

处理新增的service的方法都是以save开头。其中

  • save(T)表示新增某个类型的数据。
  • saveBatch(Collection<T>)表示新增某个类型的集合,即批量新增某个类型的数据。在以前实现批量新增的时候,我们需要在mapper.xml文件中写foreach循环,然后组装一堆的数据,非常麻烦,但是现在我们可以直接调用这个方法,即可一键批处理。
  • saveOrUpdateBatch(Collection<T>)表示批量新增或更新某个类型的数据,同时判断是否每个数据是否包含主键id,如果不包含,执行插入操作,如果包含,执行更新操作。

处理删除的service的方法都是以remove开头。其中

removeByIds(Collection<?>)和removeBatchByIds(Collection<?>)的区别是:

前者底层采用的是delete.....,但是where条件用的是in(id1,id2,id3.......)。而后者底层采用的是delete.....,但是where条件用的是id1=...,id2=....,id3=......,.......,不再使用in的方式了,它会采用jdbc的批处理方案来批量提交,实现批量删除。

显然,在性能上,后者会更好一些,前提是数据量非常大,否则两者在性能上的差别不会太大。

处理更新的service的方法都是以update开头(红色方框扛起了的区域)。其中

  • updateById(T)表示更新一条数据,数据中为空的变量不更新到数据库对应字段,不为空的变量更新到数据库对应字段。
  • updateByIdBatchById(Collection<T>)表示批量更新数据。

处理查找的service的方法分的更加细。其中

如果是查一个,那么就调用以get开头的方法,如下图:

如果是查多个,那么就调用以list开头的方法,如下图:

如果是查数量,就调用以count开头的方法,如下图:

如果要做分页查询,就调用page方法,如下图:

上面介绍的这些增删改查操作,大多数情况下,都是基于id去做的,如果要基于复杂条件,我们就需要wrapper,而传wrapper就需要我们new wrapper,这样会比较繁琐。

所以,如果要根据复杂条件做查询、更新操作,可以使用下面的方法,它们会得到LambdaQueryChainWrapper,也就是可以利用它直接基于lambdaWrapper来做查询,不需要自己去new了,更加方便。

进一步理解,可以把lambdaQuery()直接看成条件构造器,然后进行一些条件的构造,构造好后,如果要进行查询等操作,直接通过“.”的方式调用对应方法即可。如下图:

三、service接口的基本使用

1.自定义Service接口继承Iservice接口

2.自定义Service实现类,实现自定义接口并继承ServiceImpl类,其中ServiceImpl泛型要指定Mapper类型和实现类类型。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值