之前的文章 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
运行结果如下
也是没有任何问题