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

简介:     ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥-------------       本篇博客讲述如何在SpringBoot中整合PageHelper,如何实现带多个条件,以及PageInfo中的属性的中文解释(翻译) 一,jar包   com.

 

 

 

------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥-------------

 

 

 

本篇博客讲述如何在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;  

 

 

 

 

 

作者:晨曦Dawn

如果上方博客有错误,或者疑惑,请指出,感激不尽!!!!!!!!!!!!!!!!

 

目录
相关文章
|
6月前
SpringBoot+Mybatis-Plus+PageHelper分页+多条件查询
SpringBoot+Mybatis-Plus+PageHelper分页+多条件查询
165 0
|
6月前
|
SQL Java 数据库连接
【mybatis】第一篇,Springboot中使用插件PageHelper不生效解决方案
【mybatis】第一篇,Springboot中使用插件PageHelper不生效解决方案
|
2月前
|
Java 关系型数据库 MySQL
创建一个SpringBoot项目,实现简单的CRUD功能和分页查询
【9月更文挑战第6天】该内容介绍如何使用 Spring Boot 实现具备 CRUD 功能及分页查询的项目。首先通过 Spring Initializr 创建项目并选择所需依赖;其次配置数据库连接,并创建实体类与数据访问层;接着构建服务层处理业务逻辑;最后创建控制器处理 HTTP 请求。分页查询可通过添加 URL 参数实现。
|
1月前
|
SQL JSON Java
mybatis使用三:springboot整合mybatis,使用PageHelper 进行分页操作,并整合swagger2。使用正规的开发模式:定义统一的数据返回格式和请求模块
这篇文章介绍了如何在Spring Boot项目中整合MyBatis和PageHelper进行分页操作,并且集成Swagger2来生成API文档,同时定义了统一的数据返回格式和请求模块。
54 1
mybatis使用三:springboot整合mybatis,使用PageHelper 进行分页操作,并整合swagger2。使用正规的开发模式:定义统一的数据返回格式和请求模块
|
5月前
springboot2.4.5使用pagehelper分页插件
springboot2.4.5使用pagehelper分页插件
152 0
|
6月前
|
Java Spring
Spring Boot利用Spring Data JPA实现排序与分页查询实战(附源码,超详细)
Spring Boot利用Spring Data JPA实现排序与分页查询实战(附源码,超详细)
208 0
|
6月前
|
SQL Java 数据库连接
1天搞定SpringBoot+Vue全栈开发 (4)多表查询及分页查询
1天搞定SpringBoot+Vue全栈开发 (4)多表查询及分页查询
|
6月前
|
druid Java 数据库连接
SpringBoot + Mybatis + Druid + PageHelper 实现多数据源分页
SpringBoot + Mybatis + Druid + PageHelper 实现多数据源分页
248 0
|
6月前
|
前端开发 Java 数据库
springboot项目中信息分页查询的常规操作流程
springboot项目中信息分页查询的常规操作流程
95 0
|
6月前
|
SQL 前端开发 JavaScript
Spring Boot + Thymeleaf 使用PageHelper实现分页
Spring Boot + Thymeleaf 使用PageHelper实现分页