1.分页插件的概述
分页可以将很多条结果进行分页显示
如果当前在第一页,则没有上一页。如果当前在最后一页,则没有下一页
需要明确当前是第几页,这一页中显示多少条结果
解决分页问题
分页可以将很多条结果进行分页显示
如果当前在第一页,则没有上一页。如果当前在最后一页,则没有下一页
需要明确当前是第几页,这一页中显示多少条结果
PageHelper:第三方分页助手。将复杂的分页操作进行封装,从而让分页功能变得非常简单
2.分页插件的使用
实现步骤 :
1.导入与PageHelper的jar包
2.在mybatis核心配置文件中配置PageHelper插件
<!--集成分页助手插件-->
<plugins>
<plugin interceptor="com.github.pagehelper.PageInterceptor"/>
</plugins>
3.在测试类中使用分页助手相关API实现分页功能
package Mybatis2.paging;
import Mybatis2.mapper.StudentMapper;
import com.github.pagehelper.PageHelper;
import mybatis1.bean.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.InputStream;
import java.util.List;
public class Test01 {
@Test
public void selectpaging() throws Exception{
//1.加载核心配置文件
InputStream is = Resources.getResourceAsStream("MybatisConfig.xml");
//2.获取SqlSession工厂对象
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);
//3.通过工厂对象获取SqlSession
SqlSession sqlSession = sqlSessionFactory.openSession(true);
//4.获取StudentMapper接口的实现类对象
StudentMapper mapper = sqlSession.getMapper(StudentMapper.class);
//第一页,显示3条数据
//PageHelper.startPage(1,3);
//第二页,显示3条数据
//PageHelper.startPage(2,3);
// 第三页:显示3条数据
PageHelper.startPage(3,3);
List<Student> list = mapper.selectAll();
for(Student student : list){
System.out.println(student);
}
sqlSession.close();
is.close();
}
}
3.分页参数的获取
PageInfo:封装分页相关参数的功能类
核心方法:
返回值 | 方法名 | 说明 |
---|---|---|
long | getTotal() | 获取总条数 |
int | getPages() | 获取总页数 |
int | getPageNum() | 获取当前页 |
int | getPageSize() | 获取每页显示条数 |
int | getPrePage() | 获取上一页 |
int | getNextPage() | 获取下一页 |
boolean | isIsFirstPage() | 获取是否是第一页 |
boolean | isIsLastPage() | 获取是否是最后一页 |
例:
package Mybatis2.paging;
import Mybatis2.mapper.StudentMapper;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import mybatis1.bean.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.InputStream;
import java.util.List;
public class Test01 {
@Test
public void selectpaging() throws Exception{
//1.加载核心配置文件
InputStream is = Resources.getResourceAsStream("MybatisConfig.xml");
//2.获取SqlSession工厂对象
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);
//3.通过工厂对象获取SqlSession
SqlSession sqlSession = sqlSessionFactory.openSession(true);
//4.获取StudentMapper接口的实现类对象
StudentMapper mapper = sqlSession.getMapper(StudentMapper.class);
//第一页,显示3条数据
//PageHelper.startPage(1,3);
//第二页,显示3条数据
//PageHelper.startPage(2,3);
// 第三页:显示3条数据
PageHelper.startPage(3,3);
List<Student> list = mapper.selectAll();
for(Student student : list){
System.out.println(student);
}
//其他分页的数据
PageInfo<Student> info = new PageInfo<>(list);
System.out.println("总条数:"+ info.getTotal());
System.out.println("总页数:"+ info.getPages());
System.out.println("当前页:"+ info.getPageNum());
System.out.println("每页显示长度:"+ info.getPageSize());
System.out.println("是否第一页:"+ info.isIsFirstPage());
System.out.println("是否最后一页:"+ info.isIsLastPage());
sqlSession.close();
is.close();
}
}