java springboot整合MyBatis实现分页查询以及带条件的分页查询

之前的文章 java springboot整合MyBatis做数据库查询操作操作了springboot整合MyBatis,然后简单做了个按id查询的操作

那么 我们按上文搭建起的环境继续
我们直接在staffDao接口中声明一个分页函数

@Select("select * from staff limit #{page},#{pageSize}")
List<staff> getPage(@Param("page") int page, @Param("pageSize") int pageSize);

这里 我们直接在 sql语句中写limit 分页逻辑 参数是方法接收的 这个函数接收两个参数 page 要查第几页 pageSize 每页展示多少条

注意 这个函数 我们需要三个依赖包
import org.apache.ibatis.annotations.Param;
import java.util.List;
和我们自己写的这个 staff 属性类的包

然后 我们在测试类编写如下代码

System.out.println(staffDao.getPage(0,2));

在这里插入图片描述
这个点确实还是需要注意 我们这个分页的逻辑 是从零开始的
0就代表查询第一页 然后 每页展示 2条数据

到数据库看一下我们的表
在这里插入图片描述
代码运行结果如下
在这里插入图片描述
可以看到 它确实把前两条查出来了

那如果 我们想带着条件分页查询
在这里插入图片描述
可以看到 我们age 第二条和第三天都是 大于30的 那么 我们就以 大于30的age为条件 这样写
在 staffDao 接口中新添加一个函数
参考代码如下

@Select("select * from staff where age >= #{age} limit #{start},#{pageSize}")
List<staff> getAgePage(@Param("start") int start, @Param("pageSize") int pageSize,int age);

这里 我们直接写where就好了 where 和 limit 并不影响
接收三个参数 start当前页 pageSize每页展示多少条 age年龄条件

然后 我们在测试类中调用

System.out.println(staffDao.getAgePage(0,2,30));

我们调用了getAgePage 0 代表查第一页 2 每页展示 2条 30 按where 那就是 age 大于等于 30
运行结果如下
在这里插入图片描述
也是没有任何问题

猜你喜欢

转载自blog.csdn.net/weixin_45966674/article/details/131352155