SpringBoot-07:SpringBoot整合PageHelper做多条件分页查询
------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥-------------
本篇博客讲述如何在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 {@Beanpublic 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 mapperPUBLIC "-//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>=#{startdate}</if><if test="enddate!= null and enddate!=''">AND dentrytime<=#{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
如果上方博客有错误,或者疑惑,请指出,感激不尽!!!!!!!!!!!!!!!!
SpringBoot-07:SpringBoot整合PageHelper做多条件分页查询相关推荐
- springboot+thymeleaf+pageHelper带条件分页查询
html层 <div><a class="num"><b th:text="'共 '+ ${result.resultMap['pages' ...
- SpringBoot Mybatis解决使用PageHelper一对多分页问题
SpringBoot Mybatis解决使用PageHelper一对多分页问题 参考文章: (1)SpringBoot Mybatis解决使用PageHelper一对多分页问题 (2)https:// ...
- springboot集成mybatis-plus分页查询+条件分页查询
如题: mybatis-plus整合了很多我们无需重复操作的功能,直接使用即可,下面举出两个分页的例子. 1.默认无条件分页查询 public abstract IService<T> g ...
- SSM整合 - 多条件分页查询
多条件分页查询 - PageHelper 目录 多条件分页查询 - PageHelper 1. Maven配置插件 2. 准备数据库信息 3. 准备实体类 4. 封装结果类 5. 封装查询类 6. 在 ...
- SpringBoot 整合【Mybatis-Plus实现分页查询】
目录 1. 添加pom.xml依赖 2. 配置application.yml文件 3. mybatis-plus插件配置核心类 4. 启动类配置 5. 测试数据Sql脚本 6. mybatis-plu ...
- java easyui条件组合查询_EasyUi+Spring Data 实现按条件分页查询
Spring data 介绍 Spring data 出现目的 为了简化.统一 持久层 各种实现技术 API ,所以 spring data 提供一套标准 API 和 不同持久层整合技术实现 . 自己 ...
- laravel 5.5 顶部带条件分页查询
一.前言 这个问题也是老生常谈了.顶部搜索好做,分页也好做,但是带着条件分页就不太好做.也是博主自己看文档不仔细.后面仔细看文档,发现了laravel 5.5 本身就提供了这样一个方法. 文档位置:L ...
- JPA分页查询与条件分页查询
情有独钟的JPA 平时在写一些小项目时,比较喜欢引用 Spring Data Jpa,其实还是图他写代码快~ 在日常的开发工作中,分页列表查询基本是随处可见,下面一起看一下如何使用 jpa 进行多条件 ...
- 分页条件查询_mongodb多条件分页查询的三种方法
自我推荐 一.使用limit和skip进行分页查询 public List<User> pageList(int pageNum ,int pageSize){List<User&g ...
最新文章
- 【扫盲】什么是FTP、FTPS 和 SFTP?
- 【Linux】sudo用户权限管理
- Chrome的一点小问题
- Windows Phone本地数据库(SQLCE):3、[table]attribute(翻译) (转)
- 全面认识UML-类图元素(java)
- C#与Java之比较
- 将Python和R整合进一个数据分析流程
- ** 安装好的Apache服务器不能在本地计算机启动
- windows server 2012无法安装NET.framework3.5解决方法
- MariaDB修改端口号
- 2021数模美赛LaTeX+Word论文模板更新!
- 某知名网络安全公司的渗透测试工程师面试题实战汇总
- System.arraycopy()方法详解-jdk1.8
- python 公开课_python公开课|可以用Python做的十件事,刚开始学python,你一定要知道...
- 【某网页在手机上可以打开,但用电脑上所有浏览器都打不开】的解决办法
- 基于JAVA城市道路智能停车管理系统计算机毕业设计源码+系统+lw文档+部署
- SpringCloud-4.服务网关(GateWay)
- flink+mysql+connector_Flink SQL中connector的定义和实现
- codeforces 有意思的思维题 1 ~ 15
- 调用百度人体属性检测api进行人员预标注
热门文章
- Xcode怎样调整模拟器大小
- Java-eclipse快捷键及设置
- MyEclipse的Debug模式
- 赛门铁克运维注意事项
- 根据/proc/meminfo对空闲内存进行占用
- 蓝桥杯第六届国赛JAVA真题----密文搜索
- 有用的 Google Analytics Chrome 插件推荐
- python 安卓模拟器电脑版_【夜神安卓模拟器电脑版】夜神安卓模拟器电脑版 V6.6.0.6免费版官方免费下载_正式版下载-多特软件站...
- 魔兽8.0玩家最多服务器,魔兽世界8.0一上线玩家就挤爆服务器!然而暴雪还藏2个大招在后面...
- Puppeteer保存html,PuppeteerSharp读取页面完整HTML(.NetCore)