JavaEE——Mybatis(18)--MyBatis实用场景 1.PageHelper插件分页

• 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>

  

原文地址:https://www.cnblogs.com/SkyeAngel/p/8491741.html