https://yq.aliyun.com/articles/619586

本篇博客讲述如何在SpringBoot中整合PageHelper,如何实现带多个条件,以及PageInfo中的属性的中文解释(翻译)

一,jar包

        <!-- 分页插件 -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.3</version>
</dependency>

二,注册Configuration插件

package cn.dawn.util;

/**
* Created by Dawn on 2018/6/24.
*/
import java.util.Properties; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import com.github.pagehelper.PageHelper; /*
* 注册MyBatis分页插件PageHelper
*/ @Configuration
public class MybatisConf {
@Bean
public PageHelper pageHelper() {
System.out.println("MyBatisConfiguration.pageHelper()");
PageHelper pageHelper = new PageHelper();
Properties p = new Properties();
p.setProperty("offsetAsPageNum", "true");
p.setProperty("rowBoundsWithCount", "true");
p.setProperty("reasonable", "true");
pageHelper.setProperties(p);
return pageHelper;
}
}

三,dao层接口

package cn.dawn.mapper;

import cn.dawn.entity.Sys_noteDetail;

import java.util.List;
import java.util.Map; /**
* Created by Dawn on 2018/4/16.
*/
public interface INoteDAO { /*笔记分页查询*/
public List<Sys_noteDetail> getOnePagenoteData(Map<String, Object> map) throws Exception; }

  做带条件分页最好是Map,因为特别容易整合智能标签,它的多条件就是Map传进来的

四,dao层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="cn.dawn.mapper.INoteDAO"> <!--分页查询--> <select id="getOnePagenoteData" resultType="cn.dawn.entity.Sys_noteDetail">
SELECT * FROM sys_notedetail
<where>
<if test="dname!= null and dname!=''">
AND dname LIKE '%' #{dname} '%'
</if>
<if test="startdate!= null and startdate!=''">
AND dentrytime&gt;=#{startdate}
</if>
<if test="enddate!= null and enddate!=''">
AND dentrytime&lt;=#{enddate}
</if>
</where>
</select> </mapper>

五,调用PageHelper,真正使用它

package cn.dawn.service.impl;

import cn.dawn.entity.Sys_noteDetail;
import cn.dawn.mapper.INoteDAO;
import cn.dawn.service.INoteService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map; /**
* Created by Dawn on 2018/4/16.
*/
@Service("noteServiceImpl")
public class NoteServiceImpl implements INoteService{
@Resource(name = "INoteDAO")
private INoteDAO iNoteDAO; public PageInfo<Sys_noteDetail> getOnePagenoteData(Integer pageIndex, Integer pageSize, String dname, Date startdate, Date enddate) throws Exception {
/*创建分页工具类*/
PageHelper.startPage(pageIndex, pageSize);
Map<String,Object> map=new HashMap<String,Object>();
map.put("dname",dname);
map.put("startdate",startdate);
map.put("enddate",enddate);
List<Sys_noteDetail> docs = iNoteDAO.getOnePagenoteData(map);
PageInfo<Sys_noteDetail> pageInfo = new PageInfo<>(docs);
return pageInfo; } }

六,讲述一下PageInfo,方便调用

    //当前页
private int pageNum;
//每页的数量
private int pageSize;
//当前页的数量
private int size;
//由于startRow和endRow不常用,这里说个具体的用法
//可以在页面中"显示startRow到endRow 共size条数据" //当前页面第一个元素在数据库中的行号
private int startRow;
//当前页面最后一个元素在数据库中的行号
private int endRow;
//总记录数
private long total;
//总页数
private int pages;
//结果集
private List<T> list; //第一页
private int firstPage;
//前一页
private int prePage; //是否为第一页
private boolean isFirstPage = false;
//是否为最后一页
private boolean isLastPage = false;
//是否有前一页
private boolean hasPreviousPage = false;
//是否有下一页
private boolean hasNextPage = false;
//导航页码数
private int navigatePages;
//所有导航页号
private int[] navigatepageNums;

SpringBoot整合PageHelper做多条件分页查询的更多相关文章

  1. SpringBoot-07:SpringBoot整合PageHelper做多条件分页查询

    ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 本篇博客讲述如何在SpringBoot中整合PageHelper,如何实现带多个条件,以及PageInfo中的 ...

  2. springboot+thymeleaf+pageHelper带条件分页查询

    html层 <div> <a class="num"><b th:text="'共 '+ ${result.resultMap['pages ...

  3. springboot jpa mongodb 多条件分页查询

    public Page<Recorded> getRecordeds(Integer page, Integer size, Recorded recorded) { if (page&l ...

  4. springboot结合mybatis使用pageHelper插件进行分页查询

    1.pom相关依赖引入 <dependencies> <dependency> <groupId>org.springframework.boot</grou ...

  5. asp.net mvc多条件+分页查询解决方案

    开发环境vs2010 css:bootstrap js:jquery bootstrap paginator 原先只是想做个mvc的分页,但是一般的数据展现都需要检索条件,而且是多个条件,所以就变成了 ...

  6. 【java】spring-data-jpa 集成hibernate实现多条件分页查询

    初次接触spring-data-jpa,实现多条件分页查询. 基础环境 Spring Boot+spring-data-jpa+hibernate+mysql 1.接口 要继承这个接口,这个接口提供了 ...

  7. thinkphp 带条件分页查询

    thinkphp 带条件分页查询:form表单传值时候,method='get'. 用 get 传值

  8. 项目一:第四天 1、快递员的条件分页查询-noSession,条件查询 2、快递员删除(逻辑删除) 3、基于Apache POI实现批量导入区域数据 a)Jquery OCUpload上传文件插件使用 b)Apache POI读取excel文件数据

    1. 快递员的条件分页查询-noSession,条件查询 2. 快递员删除(逻辑删除) 3. 基于Apache POI实现批量导入区域数据 a) Jquery OCUpload上传文件插件使用 b) ...

  9. ASPNETCOREAPI 跨域处理 SQL 语句拼接 多条件分页查询 ASPNET CORE 核心 通过依赖注入(注入服务)

    ASPNETCOREAPI 跨域处理 AspNetCoreApi 跨域处理 如果咱们有处理过MV5 跨域问题这个问题也不大. (1)为什么会出现跨域问题:  浏览器安全限制了前端脚本跨站点的访问资源, ...

随机推荐

  1. 多版本切换python

    Python 安装包去官网自行下载: https://www.python.org/downloads/mac-osx/ Mac os 自带python, 但我记得是python2.7版本 在选择安装 ...

  2. udf文件十六进制

    如下为网上找的前辈们的UDF(以做记录) set @a = unhex('7F454C4602010100000000000000000003003E0001000000800A00000000000 ...

  3. 201871010135 张玉晶《面向对象程序设计(java)》第十一周学习总结

    项目 内容 <面向对象程序设计(java)> https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/ ...

  4. pikachu的xss及csrf

    一.XSS 可解析的js 未经过滤 XSS见框就插     script 大小写  中间插入 <img src="" onerror="alert(11111)&q ...

  5. Mysql8.0中caching_sha2_password报错解决

    https://blog.csdn.net/litte_frog/article/details/80874105

  6. 使用构造函数 Boolean 创造的对象不是布尔值,而是对象,typeof new Boolean(1) == 'object'

    注意,使用构造函数 Boolean 创造的对象不是布尔值: 事实上 new Boolean() 返回的是一个 Boolean 对象: typeof new Boolean(1) == 'object' ...

  7. zzDeep Learning Papers Translation(CV)

    Deep Learning Papers Translation(CV) Image Classification AlexNetImageNet Classification with Deep C ...

  8. div层的滑入滑出实例

    <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"><head runat=&quo ...

  9. 数据结构——链队列(linked queue)

    /* linkedQueue.c */ /* 链队列 */ #include <stdio.h> #include <stdlib.h> #include <stdboo ...

  10. luoguP4551最长异或路径

    P4551最长异或路径 链接 luogu 思路 从\(1\)开始\(dfs\)求出\(xor\)路径.然后根据性质\(x\)到\(y\)的\(xor\)路径就是\(xo[x]^xo[y]\) 代码 # ...