`
hlsps
  • 浏览: 32687 次
社区版块
存档分类
最新评论

springboot pagehelper mybatis分页

阅读更多

pagehelper分页工具,实现了分页功能,使用起来也很方便

 

1,在pom.xml文件中增加pagehelper引入,代码如下:

<!-- pagehelper -->

<dependency>

    <groupId>com.github.pagehelper</groupId>

    <artifactId>pagehelper-spring-boot-starter</artifactId>

    <version>1.2.5</version>

</dependency>

 

2,springboot的配置文件中增加pagehelper的配置参数:

# pagehelper   

pagehelper:

    helperDialect: mysql

    reasonable: true

    supportMethodsArguments: true

    params: count=countSql;

 

3,mybatis配置文件中增加查询的xml配置

 <select id="findList"  resultMap="BaseResultMap">

  select  *  from emp_info

</select>

 

4,增加分页工具类,分别是请求类:PageRequest.java, 分页参数类:PageResult.java, 分页工具类:PageUtils.java

PageRequest.java

package com.example.utils;


public class PageRequest {
	
    /**
     * 当前页码
     */
    private int pageNum;
    /**
     * 每页数量
     */
    private int pageSize;
    
    
	public int getPageNum() {
		return pageNum;
	}
	
	public void setPageNum(int pageNum) {
		this.pageNum = pageNum;
	}
	
	public int getPageSize() {
		return pageSize;
	}
	
	public void setPageSize(int pageSize) {
		this.pageSize = pageSize;
	}
	
	
	public PageRequest() {
		this.pageSize = 5;
	}
	

}

 PageResult.java

package com.example.utils;

import java.util.List;

public class PageResult {
	
	
    /**
     * 当前页码
     */
    private int pageNum;
    /**
     * 每页数量
     */
    private int pageSize;
    /**
     * 记录总数
     */
    private long totalSize;
    /**
     * 页码总数
     */
    private int totalPages;
    /**
     * 数据模型
     */
    private List<?> content;
    
    //当前页面第一个元素在数据库中的行号
    private int startRow;
    //当前页面最后一个元素在数据库中的行号
    private int endRow;
    
    //前一页
    private int prePage;
    //下一页
    private int nextPage;
    //是否为第一页
    private boolean isFirstPage;
    //是否为最后一页
    private boolean isLastPage;
    //是否有前一页
    private boolean hasPreviousPage;
    //是否有下一页
    private boolean hasNextPage;
    //导航页码数
    private int navigatePages;
    //所有导航页号
    private int[] navigatepageNums;
    //导航条上的第一页
    private int navigateFirstPage;
    //导航条上的最后一页
    private int navigateLastPage;
	public int getPageNum() {
		return pageNum;
	}
	public void setPageNum(int pageNum) {
		this.pageNum = pageNum;
	}
	public int getPageSize() {
		return pageSize;
	}
	public void setPageSize(int pageSize) {
		this.pageSize = pageSize;
	}
	public long getTotalSize() {
		return totalSize;
	}
	public void setTotalSize(long totalSize) {
		this.totalSize = totalSize;
	}
	public int getTotalPages() {
		return totalPages;
	}
	public void setTotalPages(int totalPages) {
		this.totalPages = totalPages;
	}
	public List<?> getContent() {
		return content;
	}
	public void setContent(List<?> content) {
		this.content = content;
	}
	public int getPrePage() {
		return prePage;
	}
	public void setPrePage(int prePage) {
		this.prePage = prePage;
	}
	public int getNextPage() {
		return nextPage;
	}
	public void setNextPage(int nextPage) {
		this.nextPage = nextPage;
	}
	public boolean isFirstPage() {
		return isFirstPage;
	}
	public void setFirstPage(boolean isFirstPage) {
		this.isFirstPage = isFirstPage;
	}
	public boolean isLastPage() {
		return isLastPage;
	}
	public void setLastPage(boolean isLastPage) {
		this.isLastPage = isLastPage;
	}
	public boolean isHasPreviousPage() {
		return hasPreviousPage;
	}
	public void setHasPreviousPage(boolean hasPreviousPage) {
		this.hasPreviousPage = hasPreviousPage;
	}
	public boolean isHasNextPage() {
		return hasNextPage;
	}
	public void setHasNextPage(boolean hasNextPage) {
		this.hasNextPage = hasNextPage;
	}
	public int getNavigatePages() {
		return navigatePages;
	}
	public void setNavigatePages(int navigatePages) {
		this.navigatePages = navigatePages;
	}
	public int[] getNavigatepageNums() {
		return navigatepageNums;
	}
	public void setNavigatepageNums(int[] navigatepageNums) {
		this.navigatepageNums = navigatepageNums;
	}
	public int getNavigateFirstPage() {
		return navigateFirstPage;
	}
	public void setNavigateFirstPage(int navigateFirstPage) {
		this.navigateFirstPage = navigateFirstPage;
	}
	public int getNavigateLastPage() {
		return navigateLastPage;
	}
	public void setNavigateLastPage(int navigateLastPage) {
		this.navigateLastPage = navigateLastPage;
	}
	public int getStartRow() {
		return startRow;
	}
	public void setStartRow(int startRow) {
		this.startRow = startRow;
	}
	public int getEndRow() {
		return endRow;
	}
	public void setEndRow(int endRow) {
		this.endRow = endRow;
	}
	
	
    
}

 

PageUtils.java

package com.example.utils;

import com.github.pagehelper.PageInfo;

public class PageUtils {
    
	/**
     * 将分页信息封装到统一的接口
     * @param pageRequest
     * @param pageInfo
     * @return
     */
    public static PageResult getPageResult(PageRequest pageRequest, PageInfo<?> pageInfo){
        PageResult pageResult = new PageResult();
        
        pageResult.setPageNum(pageInfo.getPageNum());
        pageResult.setPageSize(pageInfo.getPageSize());
        pageResult.setTotalSize(pageInfo.getTotal());
        pageResult.setTotalPages(pageInfo.getPages());
        pageResult.setContent(pageInfo.getList());
        pageResult.setNavigatepageNums(pageInfo.getNavigatepageNums());
        pageResult.setHasNextPage(pageInfo.isHasNextPage());
        pageResult.setHasPreviousPage(pageInfo.isHasPreviousPage());
        pageResult.setPrePage(pageInfo.getPrePage());
        pageResult.setNextPage(pageInfo.getNextPage());
        
        return pageResult;
    }
    
}

 

EmpInfoDao.java代码:

package com.example.dao;


import java.util.List;

import org.apache.ibatis.annotations.Mapper;

import com.example.entity.EmpInfo;


@Mapper
public interface EmpInfoDao {
	

	 int addEmpInfo(EmpInfo empInfo);

	
     EmpInfo empLogin(EmpInfo empInfo);
          
     
     List<EmpInfo>  findList();


}

 

EmpInfoService.java

package com.example.dao.impl;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.example.dao.EmpInfoDao;
import com.example.dao.service.EmpInfoService;
import com.example.entity.EmpInfo;
import com.example.utils.PageRequest;
import com.example.utils.PageResult;
import com.example.utils.PageUtils;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;


@Service
public class EmpInfoServiceImp implements EmpInfoService{
	
	
	@Autowired
	private EmpInfoDao dao;
	
	public int addEmpInfo(EmpInfo empInfo) {
		return dao.addEmpInfo(empInfo);
	}
	
	
	public EmpInfo empLogin(EmpInfo empInfo){
		
		return dao.empLogin(empInfo);
	}
	
	public PageResult  findList(PageRequest pageRequest) {
		return PageUtils.getPageResult(pageRequest, getPageInfo(pageRequest));
	}
	
	
    /**
     * 调用分页插件完成分页
     * @param pageQuery
     * @return
     */
    private PageInfo<EmpInfo> getPageInfo(PageRequest pageRequest) {
    	
        int pageNum = pageRequest.getPageNum();
        int pageSize = pageRequest.getPageSize();
        
        PageHelper.startPage(pageNum, pageSize);
        
        List<EmpInfo> sysMenus = dao.findList();
        
        return new PageInfo<EmpInfo>(sysMenus);
    }
	

}

 

 EmpInfoService.java

package com.example.dao.service;

import org.springframework.stereotype.Service;

import com.example.entity.EmpInfo;
import com.example.utils.PageRequest;
import com.example.utils.PageResult;


@Service
public interface EmpInfoService {
	
	
	 int addEmpInfo(EmpInfo empInfo);

		
     EmpInfo empLogin(EmpInfo empInfo);
     
     
     PageResult  findList(PageRequest pageRequest);	

}

 EmpInfoController.java

package com.example.controller;

import java.util.Map;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

import com.example.dao.service.EmpInfoService;
import com.example.entity.EmpInfo;
import com.example.utils.CommonUtils;
import com.example.utils.PageRequest;
import com.example.utils.PageResult;
import com.example.utils.StringUtils;

@Controller
public class EmpInfoController {
	
	@Autowired
	@Qualifier("empInfoServiceImp")
	private EmpInfoService service;
	  
    @RequestMapping("emplist")
    public String findList(Model model, @RequestParam  Map<String, Object> map){
    	
    	Logger logger =LoggerFactory.getLogger(this.getClass());
    	
		PageRequest  pageInfo = new PageRequest();
		
		pageInfo.setPageNum(CommonUtils.toSafeInt(map.get("pageNum")));
		//pageInfo.setPageSize(CommonUtils.toSafeInt(map.get("pageSize")));
		
		logger.debug("pageNum======" + pageInfo.getPageNum());
		logger.debug("pageSize======" + pageInfo.getPageSize());

		
		PageResult pageResult = service.findList(pageInfo);
		
		model.addAttribute("pageInfo", pageResult);
    	
    	
    	return  "user/emplist";
    	
    	
    }


}

 

页面显示 emplist.html:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8" />
    <title>Title</title>
    <link rel="stylesheet" href="test.css" type="text/css" />
</head>
<body>
    <h1>employee information</h1>
<!--显示分页信息-->
<div class="modal-footer no-margin-top">
<div>
<table class="table table-hover" id="dataTable1" border="1px" width="80%">
                <tr>
                	<th>用户ID</th>
                    <th>用户名</th>
                    <th>出生年月</th>
                    <th>年龄</th>
                    <th>电子邮箱</th>
                </tr>
                <tr th:each="oss:${pageInfo.content}">
                	<td th:text="${oss.empId}"></td>
                    <td th:text="${oss.empName}"></td>
                    <td th:text="${oss.empBrithDate}"></td>
                    <td th:text="${oss.empAge}"></td>
                    <td th:text="${oss.empEmail}"></td>
                    <th>
                        <a class="btn btn-default" href="index.html" role="button">
                            <span class="glyphicon glyphicon-floppy-remove" aria-hidden="true"></span>
                            删除</a>
                    </th>
                </tr>
            </table>

</div>
<div>                        <a class="btn btn-default" href="/register" role="button">
                            <span class="glyphicon glyphicon-download-alt" aria-hidden="true"></span>
                            新增</a>
                            </div>
    <div class="col-md-6">
        当前第 [[${pageInfo.pageNum}]]页,共 [[${pageInfo.totalPages}]] 页.一共 [[${pageInfo.totalSize}]] 条记录
    </div>
 
    <ul class="pagination pull-right no-margin">
        <li th:if="${pageInfo.hasPreviousPage}">
            <a th:href="'/emplist?pageNum=1'">首页</a>
        </li>
 		
        <li class="prev" th:if="${pageInfo.hasPreviousPage}">
            <a th:href="'/emplist?pageNum='+${pageInfo.prePage}">
                <i class="ace-icon fa fa-angle-double-left">上一页</i>
            </a>
        </li>
        
        <!--遍历条数-->
            <li th:each="nav:${pageInfo.navigatepageNums}">
                <a th:href="'/emplist?pageNum='+${nav}" th:text="${nav}" th:if="${nav != pageInfo.pageNum}"></a>
                <span style="font-weight: bold;background: #6faed9;" th:if="${nav == pageInfo.pageNum}" th:text="${nav}" ></span>
            </li>
 
        <li class="next" th:if="${pageInfo.hasNextPage}">
            <a th:href="'/emplist?pageNum='+${pageInfo.nextPage}">
                <i class="ace-icon fa fa-angle-double-right">下一页</i>
            </a>
        </li>
 
        <li>
            <a th:href="'/emplist?pageNum='+${pageInfo.totalPages}">尾页</a>
        </li>
    </ul>
</div>
 
<div>当前页号:<span th:text="${pageInfo.pageNum}"></span></div>
<div>每页条数:<span th:text="${pageInfo.pageSize}"></span></div>
<div>起始行号:<span th:text="${pageInfo.startRow}"></span></div>
<div>终止行号:<span th:text="${pageInfo.endRow}"></span></div>
<div>总结果数:<span th:text="${pageInfo.totalSize}"></span></div>
<div>总页数:<span th:text="${pageInfo.totalPages}"></span></div>
<hr />
<div>是否为第一页:<span th:text="${pageInfo.isFirstPage}"></span></div>
<div>是否为最后一页:<span th:text="${pageInfo.isLastPage}"></span></div>
<div>是否有前一页:<span th:text="${pageInfo.hasPreviousPage}"></span></div>
<div>是否有下一页:<span th:text="${pageInfo.hasNextPage}"></span></div>
</body>
</html>

 

分享到:
评论

相关推荐

    springboot+mybatis分页

    在本文中,我们将深入探讨如何在SpringBoot项目中集成Mybatis并使用PageHelper进行分页。SpringBoot以其简洁的配置和强大的自动配置功能,已成为Java开发中的热门选择。Mybatis作为一个轻量级的持久层框架,它允许...

    springboot整合mybatis,接口返回值利用pagehelper实现分页

    在本文中,我们将深入探讨如何在SpringBoot项目中整合MyBatis,并利用PageHelper插件实现接口返回值的分页功能。SpringBoot以其简洁、快速的特性,成为了现代Java开发中的首选框架,而MyBatis作为轻量级的持久层框架...

    SpringBoot+Mybatis+Druid+PageHelper实现多数据源并分页方法

    在本文中,我们将深入探讨如何使用SpringBoot、Mybatis、Druid和PageHelper来实现多数据源和分页功能。首先,SpringBoot是基于Spring框架的简化版本,它旨在简化微服务开发,提供了自动配置、内嵌式Web服务器以及...

    SpringBoot+Mybatis+PageHelper

    在IT行业中,SpringBoot、Mybatis以及PageHelper是常见的Java...通过这个项目,你可以学习到如何在SpringBoot环境中集成Mybatis和PageHelper,进行数据库操作和分页查询。通过实际操作,加深对这三个技术的理解和应用。

    SpringBoot中mybatis分页插件的使用-【pagehelper组件】

    SpringBoot中mybatis分页插件的使用--【pagehelper组件】 本系列校训 用免费公开视频,卷飞培训班哈人!打死不报班,赚钱靠狠干! 只要自己有电脑,前后项目都能搞!N年苦学无人问,一朝成名天下知! 详情看同名博客

    Android+Java后端(Springboot+Mybatis)小商店项目源码+数据库+项目说明.zip

    Android+Java后端(Springboot+Mybatis)小商店项目源码+数据库+项目说明.zip 主要实现一个商城的下单、购物车、支付等基本功能,熟悉后端的开发过程,因为自己做...PageHelper MyBatis物理分页插件 Redis 分布式缓存

    springboot整合mybatis-plus实现多表分页查询

    在本文中,我们将深入探讨如何在SpringBoot项目中整合MyBatis-Plus,实现多表分页查询。MyBatis-Plus是一个强大的MyBatis扩展,简化了对数据库的操作,包括CRUD操作以及复杂的关联查询。它提供了丰富的API,使得开发...

    SpringBoot整合mybatis-plus实现多数据源的动态切换且支持分页查询.pdf

    在SpringBoot项目中,整合Mybatis-Plus并实现多数据源的动态切换,同时支持分页查询是一项常见的需求。以下将详细阐述这个过程中的关键步骤和技术要点。 首先,我们需要引入必要的Maven依赖。这里提到了四个关键...

    基于SpringBoot+Mybatis PageHelper 分页+JAP +Restful风格的小案例

    本项目是一个以SpringBoot为核心框架,结合JPA(Java Persistence API)与Mybatis,利用PageHelper实现高效分页,并采用Restful风格设计API的实战案例。这个案例旨在帮助开发者快速理解如何在SpringBoot环境下整合...

    springboot+mybatis+pageHelper

    在本项目中,"springboot+mybatis+pageHelper"是一个基于Spring Boot、MyBatis和PageHelper的简单但功能齐全的数据分页解决方案。这个框架组合是目前企业级开发中非常流行的技术栈,尤其适用于快速构建后端服务。...

    springBoot+mybatis集成插件pageHelper

    PageHelper是MyBatis的一个分页插件,它使得在进行数据查询时能够方便地实现分页功能。下面我们将详细介绍如何将PageHelper集成到Spring Boot项目中,以及它的工作原理和优势。 **1. 集成PageHelper** 首先,我们...

    springBoot_Mybatis.zip

    实际项目中,还可以配置事务管理、使用Mybatis的插件(如PageHelper分页插件)、动态SQL等功能,进一步提高开发效率和代码质量。 通过这个项目,初学者可以了解到SpringBoot如何简化项目的配置,Mybatis如何处理...

    springboot_mybatis项目

    - **PageHelper分页插件**:这是一个非常实用的Mybatis分页插件,它可以实现物理分页和逻辑分页,只需简单配置即可实现高效、便捷的分页功能。 - **Mybatis-Plus**:它是Mybatis的增强工具,在Mybatis的基础上只做...

    springboot-mybatis.rar

    PageHelper分页插件则是MyBatis中常用的实用插件,只需简单配置即可实现高效分页功能,提升开发效率。 五、整合优势 SpringBoot整合MyBatis的优势在于: - 简化配置:SpringBoot的自动配置特性使得MyBatis的集成变...

    springboot + mybatis + pagehelper分页插件 + druid连接池 + generator逆向插件,请阅读README.md

    在本项目中,我们主要探讨的是一个基于Spring Boot框架,结合MyBatis、PageHelper分页插件、Druid连接池以及Generator逆向工程插件的整合应用。这些技术都是现代Java开发中常用且重要的组件,下面将逐一详细介绍它们...

    SpringBoot整合mybatis结合pageHelper插件实现分页

    本文将详细介绍如何在SpringBoot项目中整合Mybatis并利用PageHelper实现分页功能。 首先,我们要引入PageHelper的依赖。在项目pom.xml文件中添加以下代码: ```xml &lt;groupId&gt;com.github.pagehelper&lt;/groupId&gt; ...

    springboot-mybatis-annotation-master.rar

    本文将深入探讨如何在SpringBoot项目中整合Mybatis,并引入PageHelper进行分页处理,帮助开发者构建高效、易维护的后台系统。 一、SpringBoot与Mybatis的结合 1. 配置依赖:首先,我们需要在`pom.xml`文件中引入...

    springboot集成mybatis分页,freemark,spring,logback完整小例子

    标题中的“springboot集成mybatis分页,freemark,spring,logback完整小例子”表明这是一个关于Spring Boot项目,其中整合了MyBatis用于数据库操作,FreeMarker作为模板引擎处理视图,以及Spring框架和Logback日志系统...

    springboot+mybatis+pagehelper、web前端到后台、crud、搜索关键字、完整实例项目

    在本项目中,我们主要探讨的是一个基于SpringBoot和MyBatis框架的Web应用程序,其中PageHelper作为分页插件被应用。这个完整的实例项目涵盖了从前端到后端的交互,实现了CRUD(创建、读取、更新、删除)操作,并且...

Global site tag (gtag.js) - Google Analytics