【代码解析】代码解析之分页查询(2)

【代码解析】代码解析之分页查询(2)_第1张图片

代码如下:

@GetMapping("/page")
    public Result findPage(@RequestParam Integer pageNum,
                           @RequestParam Integer pageSize,
                           @RequestParam(defaultValue = "") String name) {

        QueryWrapper queryWrapper = new QueryWrapper<>();
        // 查询未删除的记录
        queryWrapper.eq("isdelete", false);
        queryWrapper.orderByDesc("id");
        if (!"".equals(name)) {
            queryWrapper.like("name", name);
        }
        return Result.success(fileMapper.selectPage(new Page<>(pageNum, pageSize), queryWrapper));
    }

    // 设置缓存
    private void setCache(String key, String value) {
        stringRedisTemplate.opsForValue().set(key, value);
    }

    // 删除缓存
    private void flushRedis(String key) {
        stringRedisTemplate.delete(key);
    }

}

 这是一个关于文件的分页查询接口

相关代码解析如下:

1.

 public Result findPage(@RequestParam Integer pageNum,
                           @RequestParam Integer pageSize,
                           @RequestParam(defaultValue = "") String name) {

这一行代码它定义了一个名为 findPage 的公共方法,它接收三个参数分别是 pageNum, pageSize , name  都使用了 RequestParam 注解,表示他们是 Http 请求的参数,其中如果Http 请求中没有提供 name 的参数,它的默认值为 空字符串。

2.

        QueryWrapper queryWrapper = new QueryWrapper<>();

创建一个新的 QueryWrapper 对象,用于构建查询条件

3.
        queryWrapper.eq("isdelete", false);

查询未删除的记录, (`isdelete = false`)

4.
        queryWrapper.orderByDesc("id");

查询的结果按照id 的降序进行排列

5.
        if (!"".equals(name)) {
            queryWrapper.like("name", name);
        }

如果提供的name 参数不为空,那么会添加一个查询条件,使得查询结果中的name字段包含提供的name值。

这意思是说,如果你要特地查询某个文件的时候,在搜索框输入名字的时候,这时name 参数就不会为空,展示的结果是搜索后的内容, name 参数为空时,它就会按id 的降序排列文件

【代码解析】代码解析之分页查询(2)_第2张图片

 6.
        return Result.success(fileMapper.selectPage(new Page<>(pageNum, pageSize), queryWrapper));
    }

这部分代码使用了一个分页对象和查询条件来从数据库获取数据,并将结果包装在一个成功的响应中,

7.


    private void setCache(String key, String value) {
        stringRedisTemplate.opsForValue().set(key, value);
    }

设置缓存,。它使用了一个名为stringRedisTemplate的对象,来设置一个键值对

【代码解析】代码解析之分页查询(2)_第3张图片

Spring Data Redis提供的一个类,用于操作Redis数据库

8.
    private void flushRedis(String key) {
        stringRedisTemplate.delete(key);
    }

}
 

这是另一个私有方法,用于从Redis缓存中删除一个键。同样地,它使用了stringRedisTemplate对象来执行删除操作。

你可能感兴趣的:(代码解析,java)