【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方法进行删除。