java之Mybatis分页插件

2022-07-28,,,

最近在学java的SSM框架,用到了分页插件pageHelper,下面介绍一下如何使用它
第一步:导jar包(下图中的第一个和第三个jar包)

第二部:直接上代码(上方的注释即为相应的样式)

package com.wxd.ssm.util;

import javax.servlet.http.HttpServletRequest;

import com.github.pagehelper.PageInfo;
import com.wxd.ssm.bean.Emp;

/**
 * 首页 上一页 1 2 3 4 5 下一页 末页
 *
 */
public class PageUtil {

	public static String getPageInfo(PageInfo<Emp> pageInfo, HttpServletRequest request) {
		
		String path = request.getContextPath() + "/";
		StringBuilder builder = new StringBuilder();
		
		//拼接首页
		builder.append("<a href='"+path+"emps/1'>首页</a>");
		builder.append("&nbsp;&nbsp;");
		
		//拼接上一页
		if(pageInfo.isHasPreviousPage()) {
			builder.append("<a href='"+path+"emps/"+pageInfo.getPrePage()+"'>上一页</a>");
			builder.append("&nbsp;&nbsp;");
		}else {
			builder.append("上一页");
			builder.append("&nbsp;&nbsp;");
		}
		
		//拼接页码
		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("&nbsp;&nbsp;");
			}else {
				builder.append("<a href='"+path+"emps/"+i+"'>"+i+"</a>");
				builder.append("&nbsp;&nbsp;");
			}
		}
		
		//拼接下一页
		if(pageInfo.isHasNextPage()) {
			builder.append("<a href='"+path+"emps/"+pageInfo.getNextPage()+"'>下一页</a>");
			builder.append("&nbsp;&nbsp;");
		}else {
			builder.append("下一页");
			builder.append("&nbsp;&nbsp;");
		}
		
		//拼接尾页
		builder.append("<a href='"+path+"emps/"+pageInfo.getPages()+"'>尾页</a>");
		builder.append("&nbsp;&nbsp;");
		
		return builder.toString();
		
	}
	
}

第三步:在controller层使用pageHelper

package com.wxd.ssm.controller;

import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.wxd.ssm.bean.Emp;
import com.wxd.ssm.serevice.DeptService;
import com.wxd.ssm.serevice.EmpService;
import com.wxd.ssm.util.PageUtil;

@Controller
public class EmpController {

	@Autowired
	private EmpService empService;
	
	@Autowired
	private DeptService deptService;
	
	@RequestMapping(value="/emps/{pageNum}", method=RequestMethod.GET)
	public String getAllEmpsInfo(Map<String, Object> map, @PathVariable("pageNum") Integer pageNum, HttpServletRequest request){
		//通过PageHelper设置页面信息,第一个参数为页数,第二个参数为每页显示的条数
		PageHelper.startPage(pageNum, 3);
		//获取需要的所有的员工信息
		List<Emp> allEmpsInfo = empService.getAllEmpsInfo();
		//PageHelper中封装了分页的相关信息,包括首页,下一页,尾页等···,直接调用即可
		//allEmpsInfo:将上面查询的所有员工的信息放进新创建的pageInfo中,5代表显示五个可以选择的页码,即:1 2 3 4 5 ...
		PageInfo<Emp> pageInfo = new PageInfo<>(allEmpsInfo, 5);
		String page = PageUtil.getPageInfo(pageInfo, request);
		//将需要使用的数据放进作用域中,此处用map存放,也可以用ModelAndView,故形参中需要传进一个Map
		map.put("allEmpsInfo", allEmpsInfo);
		map.put("page", page);
		return "list";
		
	}
}

这是我用SSM框架去查询数据库中的信息,并将其展示在网页页面上,效果如下,功能比较简陋,后续会继续开发

点击展示员工信息后会出现以下界面:

本文地址:https://blog.csdn.net/qq_38307826/article/details/109632103

《java之Mybatis分页插件.doc》

下载本文的Word格式文档,以方便收藏与打印。