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

发布时间:2024年01月10日

代码如下:

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

        QueryWrapper<Files> 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<Files> 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 的降序排列文件

?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的对象,来设置一个键值对

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

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

}
?

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

文章来源:https://blog.csdn.net/m0_67930426/article/details/135503629
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。