一、什么是MySQL的分页查询
顾名思义,分页查询类似于我们翻书,每一页都有固定的字数(数据)。我们可以根据自己输入的页码数,来查询到对应页码中的所有数据。
二、怎么实现
sql语句为:select * from table_name limit pageStart, pageSize;
这里我们可以看到,要在mybatis中实现分页查询,需要我们传入两个参数。但是之前我们传参使用的属性resultType只能设置一次。结合到Java中集合的知识,我们可以考虑将resultType的value设置为map,即我们传入一个map进来,然后通过#{key}来取到map中对应的value值,这样我们解决了传入多个参数的问题。
mapper代码:
<select id="queryPeopleByPage" resultType="com.zyx.pojo.People" parameterType="map">
select * from people limit #{pageStart},#{pageSize};
</select>
test测试代码:
Map<String, Object> map = new HashMap<>();
int pageSize = 2;
int pageStart = 3;
map.put("pageStart", pageSize*(pageStart-1));
map.put("pageSize", pageSize);
List<People> list = session.selectList("com.zyx.mapper.mapper.queryPeopleByPage",
map);
for (People people : list) {
System.out.println(people.toString());
}