在SSM框架中,在maven项目中需要PageHelper的依赖
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.1.11</version>
</dependency>
同时在配置文件mybatis.xml中也要加入PageHelper插件
<!-- 加入分页插件
注:4.x版本和5.x有一点差别
-->
<plugins>
<plugin interceptor="com.github.pagehelper.PageInterceptor"></plugin>
</plugins>
代码
package com.test;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.pl.mapper.ClazzMapper;
import com.pl.mapper.StudentMapper;
import com.pl.pojo.Student;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
public class Demo {
SqlSession sqlSession;
StudentMapper studentMapper;
ClazzMapper clazzMapper;
public Demo(){
String resources="mybatis.xml";
InputStream in=null;
try {
//加载mybatis.xml文件
in= Resources.getResourceAsStream(resources);
//通过配置文件创建连接数据库的工厂类
SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(in);//底层由子类DefaultSqlSessionFactory创建
//通过SQLSessionFactory获取发送SQL语句的对象
sqlSession= sqlSessionFactory.openSession();//底层用DefaultSqlSession创建的
//获取StudentMapper的对象
studentMapper = sqlSession.getMapper(StudentMapper.class);
clazzMapper = sqlSession.getMapper(ClazzMapper.class);
} catch (IOException e) {
e.printStackTrace();
}
}
//分页查询
@Test
public void sell(){
//使用PageHelper插件实现分页处理
int pageNum=2;//页码(从1开始),这个页码是用户点击传入的
int pageSize=3;//每页显示的数据条数,由程序员设定
//注意:设置页码和每页显示的条数一定要放在查询语句之前,否则不生效
PageHelper.startPage(pageNum,pageSize);//等同于SQL语句中的limit 2,3
List<Student> students = studentMapper.getStudents();
//封装分页之后的数据
//PageInfo 管理页面数据的对象(且 里面包含了:总条数,当前页面等等信息)
PageInfo<Student> pageInfo = new PageInfo<>(students);
//获取分页之后的数据
List<Student> list = pageInfo.getList();
//分页之后的数据
System.out.println("分页后");
for (Student s:list) {
System.out.println(s.getSname()+"--"+s.getAge());
}
System.out.println("分页之后的数据:"+pageInfo.getList());
System.out.println("当前的页码:"+pageInfo.getPageNum());
System.out.println("当前的数据总数:"+pageInfo.getTotal());
/**
* 注意:
*
*studentMapper.getStudents() 的查询数据的动作要放在
* PageHelper.startPage(pageNum,pageSize); 的后面 ,否则PageHelper会失效
*/
}
}