Spring boot + Mybatis Plus实现上一页、下一页功能。

编程知识 行业动态 更新时间:2024-06-13 00:21:16

在做查询的h时候, 我们会遇到上一页、下一页这样的需求, 这时候使用 id + 1 和 id -1 来做查询是不能够完成需求的, 因为会遇到有的 id 被删除而导致id 不连贯的一个情况。

Spring boot == 2.2.4
Mybatis Plus == 3.0.5
此时我们只需要对查询做个排序然后取单个结果就可以

//上一篇  SELECT * FROM new_info WHERE nid<9 ORDER BY nid DESC LIMIT 1;
//下一篇  SELECT * FROM new_info WHERE nid>9 ORDER BY nid ASC LIMIT 1;

这个 9 只是做个简单的示范, 表示当前的 id 。

使用Mybatis Plus 的代码也很简单, 直接使用条件构造器即可完成需求

Mybatis Plus 中关于大于小于的条件构造器API

ne 不等于 <>
gt  大于 >
ge 大于等于 >=
lt   小于 <
le  小于等于 <=
last("sql code ")
between BETWEEN 值1 AND 值2

首先 测试 sql 语句

1、数据库如下


2、测试上一篇(以 id = 10 为例子)


2、测试下一篇(以 id = 10 为例子)

使用 Mybatis Plus 测试

1、上一篇

    @Override
    public Sysnews getPrenews(Integer id) {
        QueryWrapper<Sysnews> wrapper = new QueryWrapper<>();
        wrapper.
                lt("news_id", id) // 小于
                .orderByDesc("news_id")
                .last("limit 1");
        Sysnews one = sysnewsMapper.selectOne(wrapper);
        return one;
    }

2、下一篇

    @Override
    public Sysnews getLastnews(Integer id) {
        //  SELECT * FROM new_info WHERE nid< 9 ORDER BY nid DESC LIMIT 1;

        QueryWrapper<Sysnews> wrapper = new QueryWrapper<>();
        wrapper.
                gt("news_id", id) // 大于
                .orderByAsc("news_id")
                .last("limit 1");
        Sysnews one = sysnewsMapper.selectOne(wrapper);
        if (one == null) {

        }
        return one;
    }

更多推荐

Spring boot + Mybatis Plus实现上一页、下一页功能。

本文发布于:2023-03-31 13:33:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/a3b10bf59af7b8200c86b19ee8481010.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:下一页   上一页   功能   Spring   boot

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!