剩余功能
1 用户数据的查询功能
后端的操作
在原来已经建好的controller文件夹下的UserController类中继续进行代码的编写,完整代码如下:
在进行网页查询的时候,需要必须传入三个参数pageNum pageSize search
http://localhost:9090/user,在最初的时候,是必须传入上面三个参数,但是由于在后面defaultValue = “1” 进行设置了默认值,所以不进行传入也能够查询到。
@RequestMapping("/user")
@RestController
public class UserController {
// 引入mapper中的内容
@Resource
UserMapper userMapper;
// 新增
@PostMapping
// Result<?>表示接收任何类型的数据
public Result<?> save(@RequestBody User user){
//判断用户的密码是否存在,不存在 设置一个默认的密码
if(user.getPassword() == null){
user.setPassword("123456");
}
// 插入数据库,在里面进行使用
userMapper.insert(user);
return Result.success();
}
// 查询,使用的是分页查询
// 在进行网页查询的时候,需要必须传入三个参数pageNum pageSize search
@GetMapping
// 当前页pageNum 默认从 1 开始,,每页条数 pageSize 默认从 10 开始,,查询关键字 默认为空
public Result<?> findPage(@RequestParam(defaultValue = "1") Integer pageNum,@RequestParam(defaultValue = "10") Integer pageSize,@RequestParam(defaultValue = "") String search){
// Page对象是由mybatisplus进行提供的
// Page<Object> page = new Page<>(pageNum,pageSize);
// 里面需要传入两个参数 一个是分页的对象,另一个wrappers对象,也是由mybatisplus提供的类
// 根据用户昵称进行模糊搜索,User::getNickName中间四个点的意思是直接进行访问user的属性,当 NickName 和search 类似的时候,就进行显示
/**
* 此时原先直接将Wrappers.<User>lambdaQuery().like(User::getNickName,search);写在 userPage中,在进行查询数据库的时候,nickName为空的字段
* 是查询不到的,所以在like之前进行一下判断
* 使用的是 hutool工具,StrUtil.isNotBlank(search) 判断 search 不是空的时候执行,此时就能将 nickName为空的数据查询出来
*/
LambdaQueryWrapper<User> wrapper = Wrappers.<User>lambdaQuery();
if(StrUtil.isNotBlank(search)){
wrapper.like(User::getNickName,search);
}
Page<User> userPage = userMapper.selectPage(new Page<>(pageNum,pageSize),wrapper);
return Result.success(userPage)