【Mybatis-Plus学习笔记(九)】通用Service

本系列博客其他文章请点击下方链接查看
【Mybatis-Plus学习笔记】目录

基本方法

通用Service可以直接在Control层操作Service实体来实现增删改查,太方便了!用来应付领导和产品经历变幻莫测的需求,简直不要不要的。

第一步:创建如下文件

public interface UserService extends IService<User> {
}
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
}

第二步:调用方法

很多方法都和BaseMapper使用方法相同。

视频的作者着重讲解了getOne函数,因为这个和BaseMapper中的selectOne还是有差距的。

        User user = userService.getOne(Wrappers.<User>lambdaQuery().gt(User::getAge, 25));

直接调用,查找出多个数据会报错。如果在getOne的参数中传入false,才能实现多个取第一个。如下:

        User user = userService.getOne(Wrappers.<User>lambdaQuery().gt(User::getAge, 25),false);

批量操作方法

saveOrUpdateBatch()和saveBatch()就是批量插入。传入两个参数,一个是操作的List,一个是插入数量限制(可选)。如果没有设置插入数量,就是默认1000个。如何过程不报错,返回ture。

User user = new User();
        user.setName("王一难");
        user.setAge(35);
        user.setEmail("wwn@baomidou.com");
        user.setManagerId(1088248166370832385L);
        user.setCreateTime(new Date());

        User user1 = new User();
        user1.setName("王二难");
        user1.setAge(35);
        user1.setEmail("wwn@baomidou.com");
        user1.setManagerId(1088248166370832385L);
        user1.setCreateTime(new Date());

        List<User> userList = Arrays.asList(user, user1);

        boolean insertFlag = userService.saveBatch(userList);

链式调用方法

List<User> userList = userService.lambdaQuery().eq(User::getName, "李艺伟").eq(User::getAge, 28).list();

比BaseMapper的更加好用, 因为做了封装。
除了lambdaQuery还可以调用lambdaUpdate。值得一提的是lambdaUpdate的构造器可以调用remove方法进行删除。

原文地址:https://www.cnblogs.com/zllk/p/14044777.html