分页插件PageHelper及PageHelper模拟分页
1.导入相关包
1)pagehelper-x.x.x.jar
2)jsqlparser-0.9.5.jar
2)在MyBatis全局配置文件mybatis-config.xml中配置分页插件
3)使用PageHelper提供的方法进行分页
4)可以使用更强大的PageInfo封装返回结果
模拟分页
PageUtil.java
package com.atguigu.test;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import com.atguigu.bean.Emp;
import com.github.pagehelper.PageInfo;
/**
* 首页 上一页 1 2 3 4 5 下一页 末页
*/
public class PageUtil {
public static String getPageInfo(PageInfo<Emp> pageInfo, HttpServletRequest request){
//String path = request.getContextPath() + "/";
String path = "/SSM/";
StringBuilder builder = new StringBuilder();
//拼接首页
builder.append("<a href='"+path+"emps/1'>首页</a>");
builder.append(" ");
//拼接上一页
if(pageInfo.isHasPreviousPage()){
builder.append("<a href='"+path+"emps/"+pageInfo.getPrePage()+"'>上一页 </a>");
builder.append(" ");
}else{
builder.append("上一页");
builder.append(" ");
}
//拼接页码
int[] nums = pageInfo.getNavigatepageNums();
for(int i : nums){
if(i == pageInfo.getPageNum()){
builder.append("<a style='color:red;' href='"+path+"emps/"+i+"'>"+i+"</a>");
builder.append(" ");
}else{
builder.append("<a href='"+path+"emps/"+i+"'>"+i+"</a>");
builder.append(" ");
}
}
//拼接下一页
if(pageInfo.isHasNextPage()){
builder.append("<a href='"+path+"emps/"+pageInfo.getNextPage()+"'>下一页</a>");
builder.append(" ");
}else{
builder.append("下一页");
builder.append(" ");
}
//拼接尾页
builder.append("<a href='"+path+"emps/"+pageInfo.getPages()+"'>尾页</a>");
builder.append(" ");
return builder.toString();
}
}
TestPage.java
package com.atguigu.test;
import java.io.InputStream;
import java.util.Arrays;
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.bean.Emp;
import com.atguigu.mapper.EmpMapper;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
public class TestPage {
@Test
public void testPage() throws Exception{
SqlSessionFactory sqlSessionFactory = getSqlSessionFactory();
SqlSession sqlSession = sqlSessionFactory.openSession(true);
EmpMapper mapper = sqlSession.getMapper(EmpMapper.class);
PageHelper.startPage(2, 2);
List<Emp> list = mapper.getAllEmp();
PageInfo<Emp> pageInfo = new PageInfo<>(list, 5);
// System.out.println(pageInfo);
// System.out.println(Arrays.toString(pageInfo.getNavigatepageNums()));
System.out.println(PageUtil.getPageInfo(pageInfo, null));
for (Emp emp : list) {
System.out.println(emp);
}
}
public SqlSessionFactory getSqlSessionFactory() throws Exception{
InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);
return sqlSessionFactory;
}
}
返回结果
字符串:
<a href='/SSM/emps/1'>首页</a> <a href='/SSM/emps/1'>上一页 </a> <a href='/SSM/emps/1'>1</a> <a style='color:red;' href='/SSM/emps/2'>2</a> <a href='/SSM/emps/3'>3</a> <a href='/SSM/emps/4'>4</a> <a href='/SSM/emps/5'>5</a> <a href='/SSM/emps/3'>下一页</a> <a href='/SSM/emps/6'>尾页</a>
浏览器显示: