一. 知识储备
前往免费下载源码
二. 例子
mybatis-config.xml
<!-- 注册插件:在数据库环境<environments>前配置 -->
<plugins>
<!-- 分页插件 -->
<plugin interceptor="com.github.pagehelper.PageInterceptor"></plugin>
</plugins>
EmployeeMapper.java
package com.atguigu.mybatis.dao;
import java.util.List;
import com.atguigu.mybatis.beans.Employee;
public interface EmployeeMapper {
public List<Employee> selectAllEmps();
}
EmployeeMapper.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.atguigu.mybatis.dao.EmployeeMapper">
<!-- public List<Employee> selectAllEmps(); -->
<select id="selectAllEmps" resultType="com.atguigu.mybatis.beans.Employee">
select id, last_name, email, gender from tbl_employee
</select>
</mapper>
TestMyBatis.java
package com.atguigu.mybatis.test;
import java.io.InputStream;
import java.util.List;
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 com.atguigu.mybatis.beans.Employee;
import com.atguigu.mybatis.dao.EmployeeMapper;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
public class TestMyBatis {
@Test
public void testPageHelper() throws Exception{
SqlSessionFactory ssf = getSqlSessionFactory();
SqlSession session = ssf.openSession();
try {
EmployeeMapper mapper = session.getMapper(EmployeeMapper.class);
//设置分页信息
Page<Object> page = PageHelper.startPage(4,1);//第一个参数:当前的页码 第二个参数:每页的条数
List<Employee> emps = mapper.selectAllEmps();
//查询以后,将结果设置到PageInfo对象中
PageInfo<Employee> info = new PageInfo<>(emps, 5);//1.查询结果 2.分页逻辑显示的页码数
for(Employee employee : emps) {
System.out.println(employee);
}
System.out.println("page==>获取分页相关的信息:");
System.out.println("总条数:" + page.getTotal());
System.out.println("总页码:" + page.getPages());
System.out.println("当前页码:" + page.getPageNum());
System.out.println("每页的条数:" + page.getPageSize());
System.out.println("info==>获取分页相关的信息:");
System.out.println("总条数:" + info.getTotal());
System.out.println("总页码:" + info.getPages());
System.out.println("当前页码:" + info.getPageNum());
System.out.println("每页的条数:" + info.getPageSize());
System.out.println("是否有上一页" + info.isHasPreviousPage());
System.out.println("是否有下一页" + info.isHasNextPage());
System.out.println("是否是第一页" + info.isIsFirstPage());
System.out.println("是否是最后一页" + info.isIsLastPage());
System.out.println("分页逻辑:");
int[] nums = info.getNavigatepageNums();
for (int i : nums) {
System.out.print(i + " ");
}
/**
* @RequestMapping(/list)
* public String listAllEmps(Map<String, Object> map){
*
* //1. 设置分页信息
* Page<Object> page = PageHelper.startPage(4,1);
* //2. 查数据
* List<Employee> emps = employeeMapper.selectAllEmps();
* //3. 封装PageInfo对象
* PageInfo<Employee> info = new PageInfo<>(emps, 5);
*
* map.put("info", info);
*
* return "list";
*
*
*/
} finally {
// TODO: handle finally clause
session.close();
}
}
public SqlSessionFactory getSqlSessionFactory() throws Exception {
String resource = "mybatis-config.xml";
InputStream inputStream =
Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory =
new SqlSessionFactoryBuilder().build(inputStream);
return sqlSessionFactory;
}
}