一、分页
// 查询所有数据
public static void ListAll(SqlSession session) {
Map<String, Object> paramsMap = new HashMap<>();
paramsMap.put("start", 0);
paramsMap.put("count", 5);
List<Category> cs = session.selectList("listCategory", paramsMap);
for (Category c : cs) {
System.out.println(c.getId() + c.getName());
}
}
配置代码
<!--查询数据(所有)-->
<select id="listCategory" resultType="Category">
select * from category_
<if test="start!=null and count!=null">
limit #{start},#{count}
</if>
</select>
运行结果:
二、PageHelper
需要导入的包
分页查询
在数据库配置文件中 environments 标签上方添加代码
<plugins>
<plugin interceptor="com.github.pagehelper.PageInterceptor">
</plugin>
</plugins>
SQL映射配置文件 中的 select 标签 中的 if 标签可以去掉
<!--查询数据(所有)-->
<select id="listCategory" resultType="Category">
select * from category_
<!--<if test="start!=null and count!=null">
limit #{start},#{count}
</if>-->
</select>
只需要在每次查询之前加上代码
PageHelper.offsetPage(0, 5);
就可达到分页效果
运行结果:
获取总数
// 查询所有数据
public static void ListAll(SqlSession session) {
Map<String, Object> paramsMap = new HashMap<>();
PageHelper.offsetPage(0, 5);
List<Category> cs = session.selectList("listCategory", paramsMap);
for (Category c : cs) {
System.out.println(c.getId() + c.getName());
}
PageInfo page = new PageInfo<>(cs);
System.out.println(page);
System.out.println(page.getTotal());
}
加上了一行代码
PageInfo page = new PageInfo<>(cs);
其中包含了很多与页面数据有关的信息。
运行结果: