• PageHelper是MyBatis中非常方便的第三方分页插件。
• 官方文档:https://gitee.com/free/Mybatis_PageHelper 我们可以对照官方文档的说明,快速的使用插件
https://github.com/pagehelper/Mybatis-PageHelper/blob/master/wikis/zh/HowToUse.md
把最新的jar包下载下来
导入jar包之后要配置拦截器插件
在代码中使用
PageInfo
package com.atguigu.mybatis.test;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
import com.atguigu.mybatis.bean.Student;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
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 com.atguigu.mybatis.dao.StudentMapper;
import org.junit.Test;
public class MyBatisTest {
public SqlSessionFactory getSqlSessionFactory() throws IOException {
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
return new SqlSessionFactoryBuilder().build(inputStream);
}
@Test
public void test01() throws IOException {
// 1、获取sqlSessionFactory对象
SqlSessionFactory sqlSessionFactory = getSqlSessionFactory();
// 2、获取sqlSession对象
SqlSession openSession = sqlSessionFactory.openSession();
try {
/*// 3、获取接口的实现类对象
//会为接口自动的创建一个代理对象,代理对象去执行增删改查方法
StudentMapper mapper = openSession.getMapper(StudentMapper.class);
Student student = mapper.getEmpById(1);
System.out.println(mapper);
System.out.println( student );*/
StudentMapper studentMapper = openSession.getMapper( StudentMapper.class );
Page page = PageHelper.startPage(2, 4);
List<Student> students = studentMapper.getStus();
/*PageInfo<Student> info = new PageInfo<>(students);*/
//传入要连续显示多少页
PageInfo<Student> info = new PageInfo<>(students, 2);
for(Student student : students){
System.out.println(student);
}
System.out.println("--------Page-------");
System.out.println("当前页码 " + page.getPageNum());
System.out.println(" " + page.getCountColumn());
System.out.println("总记录数 " + page.getTotal());
System.out.println("总页码 " + page.getPages());
System.out.println("每页的记录数 " + page.getPageSize());
System.out.println("--------PageInfo-------");
System.out.println("当前页码 " + info.getPageNum());
System.out.println("总记录数 " + info.getTotal());
System.out.println("总页码 " + info.getPages());
System.out.println("每页的记录数 " + info.getPageSize());
System.out.println("是否是第一页 " + info.isIsFirstPage());
System.out.println("是否是最后一页 " + info.isIsLastPage());
System.out.println("连续显示的页码");
int[] nums = info.getNavigatepageNums();
for(int i = 0; i < nums.length; i++){
System.out.println(nums[i]);
}
} finally {
openSession.close();
}
}
}
mybatis_config.xml 中的plugins的配置
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<plugins>
<plugin interceptor="com.github.pagehelper.PageInterceptor"></plugin>
</plugins>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/db_person" />
<property name="username" value="root" />
<property name="password" value="1234" />
</dataSource>
</environment>
</environments>
<!-- 将我们写好的sql映射文件(StudentMapper.xml)一定要注册到全局配置文件(mybatis-config.xml)中 -->
<mappers>
<mapper resource="StudentMapper.xml" />
</mappers>
</configuration>