SpringBoot实现分页插件

合集下载

pagehelper分页用法

pagehelper分页用法

pagehelper分页用法PageHelper是一个为了方便开发人员进行分页查询而提供的一个分页插件,它是在MyBatis的基础上进行封装的。

PageHelper可以用于任何Java项目,不仅仅局限于MyBatis。

PageHelper以其简单易用、功能强大的特点受到广大开发人员的喜爱。

PageHelper的使用非常简单,使用以下几个步骤即可实现分页查询。

1. 引入PageHelper依赖:在Maven项目的pom.xml文件中加入以下依赖:```<dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId><version>1.3.0</version></dependency>```2. 配置PageHelper:在Spring Boot项目的配置文件application.properties中加入以下配置:```# 分页插件配置pagehelper.helper-dialect=mysqlpagehelper.reasonable=truepagehelper.support-methods-arguments=truepagehelper.params=count=countSql```3. 查询数据并进行分页:```java// 在需要分页查询的方法中加入以下代码PageHelper.startPage(pageNum, pageSize);List<User> userList = userDao.getUserList(); // 自定义方法,查询用户列表```在查询方法前调用PageHelper.startPage()方法指定当前页码和每页显示数量。

Java实现分页功能常见的几种方法

Java实现分页功能常见的几种方法

Java实现分页功能常见的⼏种⽅法⼀、limit关键字service层@Service@Transactionalpublic class ImplStudentService implements StudentService {@Resourceprivate StudentDao studentDao;@Overridepublic List<Student> selectAllStudent(String province, Integer offset, Integer limit) {return studentDao.selectAll(province,offset,limit);}}sql语句select * from student where province = #{province} limit #{offset},#{limit}⼆、hibernate分页service层@Overridepublic List getStudents(Integer pageNo,Integer pageSize) throws Exception {// 分页数据int[] startIdAndCount = new int[2];startIdAndCount[0] = pageNo * pageSize;startIdAndCount[1] = pageSize;return studentDao.selectStudentsByPage(startIdAndCount);}dao层@Overridepublic List findByHqlPage(int[] startIdAndCount) throws Exception {String hql = "...";try {Query query = getSession().createQuery(hql);// 设置分页if (startIdAndCount != null && startIdAndCount.length > 0) {int rowStartIdx = Math.max(0, startIdAndCount[0]);if (rowStartIdx > 0) {query.setFirstResult(rowStartIdx);// 设置开始取值的索引}if (startIdAndCount.length > 1) {int rowCount = Math.max(0, startIdAndCount[1]);if (rowCount > 0) {query.setMaxResults(rowCount);// 设置结束取值的索引}}}return query.list();} catch (RuntimeException re) {log.error("分页查询失败!", re);throw re;}}三、截取List查询结果分页(简单粗暴)...List<StudentEnroll> students = studentlDao.getAllStudents();int count = 0;if(studentEnrolls != null && studentEnrolls.size() > 0) {count = studentEnrolls.size();int fromIndex = pageNo * pageSize;int toIndex = (pageNo + 1) * pageSize;if(toIndex > count) {toIndex = count;}List<StudentEnroll> pageList = studentEnrolls.subList(fromIndex, toIndex);...四、mybatis框架pageHelper插件分页Spring整合:导⼊pom.xml<!-- https:///artifact/com.github.pagehelper/pagehelper --><dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper</artifactId><version>5.1.2</version></dependency>配置项⽬配置⽂件(我在spring和mybatis整合的配置⽂件中配置的,如果在mybatis核⼼配置⽂件中配置,百度⼀下) <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><!-- 依赖数据源 --><property name="dataSource" ref="dataSource"/><!-- 注册加载myBatis映射⽂件 --><property name="mapperLocations"><array><value>classpath*:com/yyz/mapper/*Mapper.xml</value></array></property><!-- PageHelper分页配置 --><property name="plugins"><array><bean class="com.github.pagehelper.PageInterceptor"><property name="properties"><!--使⽤下⾯的⽅式配置参数,⼀⾏配置⼀个,后⾯会有所有的参数介绍 --><value><!--helperDialect属性来指定分页插件使⽤哪种⽅⾔。

SpringBoot整合tk.mybatis及pageHelper分页插件及mybatis逆向工程

SpringBoot整合tk.mybatis及pageHelper分页插件及mybatis逆向工程

SpringBoot整合tk.mybatis及pageHelper分页插件及mybatis逆向⼯程Spring Boot整合druid数据源1)引⼊依赖<dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.1.10</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope></dependency>2)application.properties引⼊配置# datasource configspring.datasource.druid.driver-class-name=com.mysql.cj.jdbc.Driverspring.datasource.druid.url=jdbc:mysql://localhost:3306/test?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8ername=rootspring.datasource.druid.password=123spring.datasource.druid.initial-size=5spring.datasource.druid.min-idle=5spring.datasource.druid.max-active=20spring.datasource.druid.test-on-borrow=true3)整合MyBatistk.mybatis是在MyBatis的基础上提供了很多⼯具,让开发更加⾼效添加依赖<!-- 整合tk.mybatis --><dependency><groupId>tk.mybatis</groupId><artifactId>mapper-spring-boot-starter</artifactId><version>2.0.2</version></dependency>application.properties中添加mybatis的配置mybatis.type-aliases-package=com.fei.entitymybatis.mapper-locations=classpath:mapper/*.xml创建通⽤的⽗级接⼝package tk.mybatis;import mon.Mapper;import mon.MySqlMapper;/*** ⾃⼰的Mapper,特别注意不能被扫描到,否则会出错* Created by zxf on 2019年10⽉16⽇*/public interface MyMapper<T> extends Mapper<T>, MySqlMapper<T>{}4)整合PageHelper分页插件PageHelper是MyBatis的分页插件,⽀持多数据源,多数据库,可以简化数据库的分页查询操作,整合过程极其简单,只需要引⼊依赖即可。

oracle+mybatis-plus+springboot实现分页查询的实例

oracle+mybatis-plus+springboot实现分页查询的实例

oracle+mybatis-plus+springboot实现分页查询的实例今天蠢了⼀上午才弄出这玩意,话不多说上代码!1、建⼀个配置类package com.sie.demo.config;import com.baomidou.mybatisplus.annotation.DbType;import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;/*** @author liaozhifeng* @date 2021/7/31 11:14* @Version 1.0*/@Configuration@ConditionalOnClass(value = {PaginationInterceptor.class})public class MybatisPlusConfig {// 最新版@Beanpublic MybatisPlusInterceptor mybatisPlusInterceptor() {MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();// 数据库的配置DbType.ORACLE 根据⾃⼰的数据库选择interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.ORACLE));return interceptor;}}2、service层的代码package com.sie.demo.service.impl;import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;import com.baomidou.mybatisplus.core.metadata.IPage;import com.baomidou.mybatisplus.extension.plugins.pagination.Page;import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;import ers;import com.sie.demo.entity.vo.PageUserVo;import erMapper;import erService;import lombok.extern.slf4j.Slf4j;import org.springframework.stereotype.Service;import org.springframework.util.DigestUtils;import javax.annotation.Resource;import javax.servlet.http.HttpSession;import java.util.List;/*** @author liaozhifeng* @date 2021/7/27 14:03* @Version 1.0*/@Service@Slf4jpublic class UserServiceImpl extends ServiceImpl<UserMapper, Users> implements UserService {@ResourceUserMapper userMapper;/*** 分页查询⽤户* @param currentPage* @param pageSize* @return*/@Overridepublic PageUserVo selectAll(long currentPage, long pageSize) {IPage<Users> userPage = new Page<>(currentPage, pageSize);//参数⼀是当前页,参数⼆是每页个数IPage<Users> iPage = userMapper.selectPage(userPage, null);List<Users> list = iPage.getRecords();Long total = iPage.getTotal();PageUserVo pageUserVo = new PageUserVo(list, total);return pageUserVo;}}3、controller层 RetResult是我⾃⼰定义的⼀个统⼀返回的泛型对象package com.sie.demo.controller;import com.baomidou.mybatisplus.core.conditions.Wrapper;import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;import com.baomidou.mybatisplus.core.metadata.IPage;import com.baomidou.mybatisplus.extension.conditions.query.QueryChainWrapper;import com.baomidou.mybatisplus.extension.plugins.pagination.Page;import com.sie.demo.entity.RetCode;import com.sie.demo.entity.RetResponse;import com.sie.demo.entity.RetResult;import ers;import com.sie.demo.entity.vo.PageUserVo;import erServiceImpl;import com.sie.demo.util.TokenUtil;import lombok.extern.slf4j.Slf4j;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.*;import javax.annotation.Resource;import javax.servlet.http.HttpSession;import java.util.List;@Controller@RestController@RequestMapping("user")@Slf4jpublic class UserController {@AutowiredUserServiceImpl userService;/***** @param currentPage* @param pageSize* @return*/@GetMapping("selectAll")public RetResult<PageUserVo> selectAll(long currentPage, long pageSize) {(currentPage+pageSize+"=========================");PageUserVo pageUserVo = userService.selectAll(currentPage,pageSize);return RetResponse.makeOKRsp(pageUserVo);}}到此这篇关于oracle+mybatis-plus+springboot实现分页查询的实例的⽂章就介绍到这了,更多相关 mybatis-plus springboot分页查询内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!。

pagehelper用法

pagehelper用法

pagehelper用法PageHelper是一个Mybatis的分页插件,它可以提供更加方便的分页功能。

PageHelper的功能包括:在不改变原有的sql语句的基础上,为查询结果分页,并自动计算出总页数和总记录数;自定义页码,例如设置最大页码和最小页码,以及如何处理空白页码等;支持主从库分离,自动路由到相应的数据源;支持偏移量、分页大小的参数自定义;支持多种数据库,包括MySQL、Oracle、SQLServer等;支持自定义插件,用于改变分页参数等。

PageHelper的使用十分简单,使用时只需要在Maven依赖中添加PageHelper插件:<dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.2.13</version></dependency>在Mybatis的配置文件中加入插件:<plugins><plugininterceptor=com.github.pagehelper.PageInterceptor<property name=properties<value>dialect=mysql</value></property></plugin></plugins>在Mybatis的查询语句中,使用PageHelper.startPage()函数来进行数据库分页:PageHelper.startPage(pageNum, pageSize);List<Student> studentList = StudentMapper.selectAll(); PageHelper插件的灵活性以及强大的功能,使得它成为处理Mybatis的分页操作的首选插件。

pagehelper分页用法

pagehelper分页用法

pagehelper分页用法PageHelper是一个用于MyBatis分页插件,可以方便地对数据库进行分页查询操作。

它可以在使用MyBatis进行数据查询时,自动地根据用户的需求进行分页查询,并提供一系列的分页功能。

使用PageHelper插件首先需要引入相关依赖,可以在项目的pom.xml文件中添加以下依赖:```xml<dependency><artifactId>pagehelper-spring-boot-starter</artifactId><version>1.3.0</version></dependency>``````xml<plugins><property name="helperDialect" value="mysql"/></plugin></plugins>```在代码中使用PageHelper进行分页查询操作时,需要在查询方法之前调用静态方法`PageHelper.startPage(`进行分页设置,之后的数据库查询操作就会自动进行分页查询。

以下是PageHelper的一些常用方法和用法说明:2. `PageHelper.offsetPage(int start, int pageSize)`:设置起始偏移量和每页显示记录数,start表示起始偏移量,pageSize表示每页显示的记录数。

3. `PageHelper.orderBy(String orderBy)`:设置排序规则,orderBy表示排序字段和排序方式,例如:`"id desc"`表示按id字段降序排列。

4. `PageInfo<T> pageInfo = new PageInfo<>(List<T> list)`:将查询结果封装为PageInfo对象,可以通过该对象获取相关分页信息,例如总记录数、总页数等。

mybatis分页插件pagehelper原理

mybatis分页插件pagehelper原理

mybatis分页插件pagehelper原理MyBatis分页插件PageHelper原理1. 前言PageHelper是一款非常受欢迎的MyBatis分页插件,通过对MyBatis进行扩展,提供了简单易用的分页功能。

本文将从浅入深,逐步解释PageHelper的原理。

2. 为什么需要分页插件在处理大量数据时,如果不进行分页处理,一次性将所有数据加载到内存中会导致内存溢出的风险,同时也会导致查询速度变慢。

因此,分页是处理大量数据的常用方式,而PageHelper正是为了简化分页处理而开发的。

3. PageHelper的基本原理PageHelper的基本原理是通过MyBatis的拦截器机制,在sql执行前动态修改sql语句,同时加入分页相关的信息,从而实现分页功能。

具体流程如下:1.PageHelper首先会通过MyBatis的Interceptor拦截器截获Executor的执行过程。

2.通过反射获取到Executor中的MappedStatement对象,进而获取到当前执行的sql语句。

3.根据用户传入的参数,解析出分页相关的信息,如当前页码、每页显示数量等。

4.通过分页相关的信息,动态修改原始的sql语句,加入分页语句,如LIMIT或ROWNUM等。

5.执行修改后的sql语句,得到分页查询的结果。

6.将查询结果封装成Page对象,包含总记录数、总页数、当前页数据等信息,返回给调用者。

4. 使用PageHelper实现分页引入依赖首先需要在项目中引入PageHelper的依赖,可以通过在Maven的``文件中添加以下依赖:<dependency><groupId></groupId><artifactId>pagehelper-spring-boot-starter</artifact Id><version>最新版本</version></dependency>配置PageHelper在Spring Boot项目中,可以通过在配置文件中添加以下配置来启用PageHelper:mybatis:configuration:# PageHelper插件拦截器interceptors:使用PageHelper提供的方法在需要进行分页查询的Mapper接口中,可以直接使用PageHelper提供的方法进行分页查询,例如:import ;import ;public interface UserMapper {List<User> getUsers();// 分页查询用户列表default List<User> getUsersByPage(int pageNum, int p ageSize) {(pageNum, pageSize);List<User> users = getUsers();return new PageInfo<>(users).getList();}}通过对PageHelper的原理解析,我们可以了解到PageHelper是通过MyBatis拦截器实现的分页功能,可以简化分页查询的开发流程。

springboot整合mybatis-plus的两种分页查询方式--自定义的结果集分页返回浏览器

springboot整合mybatis-plus的两种分页查询方式--自定义的结果集分页返回浏览器

springboot整合mybatis-plus的两种分页查询⽅式--⾃定义的结果集分页返回浏览器⼀、⾸先是mybatis-plus⾃带的分页注意:下⾯的分页的页数和页⾯⼤⼩语句⼀定⼀定要写在select查询语句之前才能分页⽣效①② PageHelper.startPage(pNum,10);第⼀种⾃带分页⽅式:配置类添加:应⽤:⼆、返回的结果集如果不是直接从mappe直接查询出来的,⽽是经过add、get、set⼀些列操作之后再传给浏览器的话,⾃带的分页不能满⾜。

1.pomxml添加依赖<dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId><version>1.3.0</version></dependency>View Code2.application.yml配置#分页pageHelperpagehelper:helper-dialect: mysqlreasonable: truesupport-methods-arguments: true3. 基本的mapper、service、controller都和普通的⼀样。

controller接收浏览器请求-->调⽤service的抽象⽅法-->serviceImpl实现类去调⽤mapper查询sql得到集合重点在serviceImpl层进⾏分页:PageHelper.startPage(pNum,10); //这条语句必须在下⾯的查询或者⾃定义查询之前//⼀般都是mapper层的select操作;//如果想返回⾃定义集合,看下⾯PageInfo<AreaEuiqmentVO> pageInfo = new PageInfo<>(list1); //list1是我⾃定义的结果集,return pageInfo.getList();。

SpringBoot整合PageHelper实现分页查询功能详解

SpringBoot整合PageHelper实现分页查询功能详解

SpringBoot整合PageHelper实现分页查询功能详解前⾔本⽂介绍的是MyBatis 分页插件 PageHelper,如果你也在⽤ MyBatis,建议尝试该分页插件,这⼀定是最⽅便使⽤的分页插件。

分页插件⽀持任何复杂的单表、多表分页。

使⽤⽅法导⼊依赖在中央仓库中搜索pageHelper,找到pagehelper-spring-boot-starter可以⾃选版本,选择你所使⽤的依赖管理⼯具对应的依赖坐标,例如我⽤的依赖管理⼯具是Maven,那我就选择对应Maven的依赖坐标。

添加pagehelper-spring-boot-starter的Maven依赖<dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId><version>1.4.1</version></dependency>添加该依赖之后⽆需再添加MyBatis的依赖,因为该依赖默认依赖了MyBatis:编写配置⽂件使⽤yaml格式:pagehelper:helper-dialect: mysqlreasonable: truesupport-methods-arguments: trueparams: count=countSql使⽤properties格式:# 指定分页插件的⽅⾔pagehelper.helper-dialect=mysql# 分页合理化pagehelper.reasonable=true# ⽀持⽅法参数pagehelper.support-methods-arguments=true#配置参数映射pagehelper.params=count=countSql参数说明:可参考官⽅⽂档准备数据表准备Mapper接⼝测试查询全部数据运⾏结果:默认SQL语句就是查询全部数据PageHelper 分页查询使⽤PageHelper.startPage(pageNum,pageSize)⽅法来设置分页信息,分别是当前页数和每页显⽰的总记录数注意:必须在mapper接⼝中的⽅法执⾏之前设置该分页信息运⾏结果:PageHelper.startPage(pageNum,pageSize)⽅法只对后⾯⼀次查询⽣效下⾯有2次查询所有数据,第1次查询所有数据前插⼊了PageHelper.startPage(pageNum,pageSize)⽅法,所以第1次查询是分页查询,⽽第2次查询前没有插⼊PageHelper.startPage(pageNum,pageSize)⽅法,所以不是分页查询。

分页系统原理

分页系统原理

分页系统原理一、引言分页系统是指将一个大型的数据集合分成若干个小的部分,每个部分称为一页,以便于用户查看和操作。

在计算机领域中,分页系统被广泛应用于数据库、操作系统、网站等方面。

本文将详细介绍分页系统的原理及其实现方法。

二、分页系统的原理1. 数据集合的划分在使用分页系统时,首先需要将一个大型的数据集合按照一定规则进行划分。

常用的规则有按照时间、按照关键字等方式进行划分。

例如,在网站上展示新闻列表时,可以按照时间顺序将新闻列表进行划分。

2. 分页算法在对数据集合进行划分后,需要使用算法对数据进行处理。

常用的算法有基本算法和高级算法两种。

(1)基本算法基本算法是指最简单的数据处理方式,主要包括以下几种:① 静态数组:将所有数据存储在一个数组中,并根据需要截取其中一部分展示给用户。

② 动态数组:与静态数组相似,但可以根据需要动态扩展或缩小数组大小。

③ 链表:将所有数据存储在链表中,并根据需要截取其中一部分展示给用户。

(2)高级算法高级算法是指在基本算法的基础上,通过一些优化方式提高分页系统的效率。

常用的高级算法有以下几种:① 数据库分页:将数据存储在数据库中,并使用SQL语句进行分页处理。

② 索引分页:在数据集合中建立索引,根据索引进行数据分页。

③ 缓存分页:将数据缓存在内存中,根据需要从缓存中取出一部分展示给用户。

3. 分页显示在对数据进行划分和处理后,需要将处理后的数据展示给用户。

常用的方式有以下几种:(1)静态页面:将所有数据渲染到HTML页面中,并通过CSS样式进行排版和展示。

(2)动态页面:使用JavaScript等技术实现动态加载和渲染数据。

(3)AJAX技术:使用AJAX技术异步加载和渲染数据,提高用户体验。

4. 分页控件为了方便用户操作,常常需要提供一些控件来实现翻页、跳转等功能。

常用的控件有以下几种:(1)翻页按钮:提供上一页、下一页等按钮,方便用户翻阅数据。

(2)跳转输入框:允许用户输入要跳转到的页面编号或关键字。

BootStraptable服务端分页

BootStraptable服务端分页

BootStraptable服务端分页涉及到的内容:1.bootstrap-table插件;2.mybatisplus分页查询;3.spring封装对象匹配bootstrap-table插件格式;4.sql查询隐藏⼿机号中间四位。

让我们开始:1.想要实现bootstrap 表格服务端分页,⾸先需要使⽤插件bootstrap-table.min.cssbootstrap-table.min.jsbootstrap-table-zh-CN.js页⾯上的引⽤是这样的index.html<html><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1"><title>Bootstrap表格</title><script src="https:///npm/jquery@1.12.4/dist/jquery.min.js"></script><!-- Bootstrap --><!-- 最新版本的 Bootstrap 核⼼ CSS ⽂件 --><link rel="stylesheet" href="https:///npm/bootstrap@3.3.7/dist/css/bootstrap.min.css" ><!-- 最新的 Bootstrap 核⼼ JavaScript ⽂件 --><script src="https:///npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"></script><link href="css/bootstrap-table.min.css" rel="stylesheet"><script src="js/bootstrap-table.min.js"></script><script src="js/bootstrap-table-zh-CN.js"></script><script src="js/bootstrap-table-object.js"></script> <script src="js/index.js"></script></head><body><h1>表格</h1><div class="container"><div class=""><table class="table table-striped table-bordered table-hover" id="userTable"></table><div class="clear"></div></div></div></body></html>index.jsvar MgrUser = {id: "userTable",//表格idseItem: null, //选中的条⽬table: null,layerIndex: -1};/*** 初始化表格的列*/MgrUser.initColumn = function () {var columns = [{title: 'id', field: 'id', visible: false, align: 'center', valign: 'middle'},{title: '姓名', field: 'user_name', align: 'center', valign: 'middle', sortable: true},{title: '电话', field: 'mobile', align: 'center', valign: 'middle', sortable: true},{title: '时间', field: 'last_login_time', align: 'center', valign: 'middle', sortable: true},{title: '状态', field: 'status', align: 'center', valign: 'middle', sortable: true}];return columns;};$(function () {var defaultColunms = MgrUser.initColumn();var table = new BSTable("userTable", "http://localhost/abc/def", defaultColunms);table.setPaginationType("server");MgrUser.table = table.init();});bootstrap-table-object.js/*** 初始化 BootStrap Table 的封装** 约定:toolbar的id为 (bstableId + "Toolbar")** @author fengshuonan*/(function () {var BSTable = function (bstableId, url, columns) {this.btInstance = null; //jquery和BootStrapTable绑定的对象this.bstableId = bstableId;this.url = url;this.method = "post";this.paginationType = "server"; //默认分页⽅式是服务器分页,可选项"client"this.toolbarId = bstableId + "Toolbar";this.columns = columns;this.height = 665; //默认表格⾼度665this.data = {};this.queryParams = {}; // 向后台传递的⾃定义参数};BSTable.prototype = {/*** 初始化bootstrap table*/init: function () {var tableId = this.bstableId;var me = this;this.btInstance =$('#' + tableId).bootstrapTable({contentType: "application/x-www-form-urlencoded",url: this.url, //请求地址method: this.method, //ajax⽅式,post还是getajaxOptions: { //ajax请求的附带参数data: this.data},/* responseHandler: function (res) {//获取多级jsonreturn res.data.records}, */toolbar: "#" + this.toolbarId,//顶部⼯具条striped: true, //是否显⽰⾏间隔⾊cache: false, //是否使⽤缓存,默认为truesortable: true, //是否启⽤排序sortOrder: "desc", //排序⽅式pageNumber: 1, //初始化加载第⼀页,默认第⼀页pageSize: 14, //每页的记录⾏数(*)pageList: [14, 50, 100], //可供选择的每页的⾏数(*)queryParamsType: 'limit', //默认值为 'limit' ,在默认情况下传给服务端的参数为:offset,limit,sort queryParams: function (param) {return $.extend(me.queryParams, param);}, // 向后台传递的⾃定义参数sidePagination: this.paginationType, //分页⽅式:client客户端分页,server服务端分页(*)search: false, //是否显⽰表格搜索,此搜索是客户端搜索,不会进服务端strictSearch: true, //设置为 true启⽤全匹配搜索,否则为模糊搜索showColumns: true, //是否显⽰所有的列showRefresh: true, //是否显⽰刷新按钮minimumCountColumns: 2, //最少允许的列数clickToSelect: true, //是否启⽤点击选中⾏searchOnEnterKey: true, //设置为 true时,按回车触发搜索⽅法,否则⾃动触发搜索⽅法columns: this.columns, //列数组pagination: true, //是否显⽰分页条height: this.height,icons: {refresh: 'glyphicon-repeat',toggle: 'glyphicon-list-alt',columns: 'glyphicon-list'},iconSize: 'outline'});return this;},/*** 向后台传递的⾃定义参数* @param param*/setQueryParams: function (param) {this.queryParams = param;},/*** 设置分页⽅式:server 或者 client*/setPaginationType: function (type) {this.paginationType = type;},/*** 设置ajax post请求时候附带的参数*/set: function (key, value) {if (typeof key == "object") {for (var i in key) {if (typeof i == "function")continue;this.data[i] = key[i];}} else {this.data[key] = (typeof value == "undefined") ? $("#" + key).val() : value;}return this;},/*** 设置ajax post请求时候附带的参数*/setData: function (data) {this.data = data;return this;},/*** 清空ajax post请求参数*/clear: function () {this.data = {};return this;},/*** 刷新 bootstrap 表格* Refresh the remote server data,* you can set {silent: true} to refresh the data silently,* and set {url: newUrl} to change the url.* To supply query params specific to this request, set {query: {foo: 'bar'}}*/refresh: function (parms) {if (typeof parms != "undefined") {this.btInstance.bootstrapTable('refresh', parms);} else {this.btInstance.bootstrapTable('refresh');}}};window.BSTable = BSTable;}());2.mybatisplus分页代码⽚段: Page<UserInfo> page = new PageFactory<UserInfo>().defaultPage();EntityWrapper<UserInfo> entityWrapper = new EntityWrapper<UserInfo>();entityWrapper.setSqlSelect("user_name","insert(mobile, 4, 4, '****') as mobile","IF(status = 0,'未签到','已签到') as status","last_login_time"); entityWrapper.eq("manager_tel",managerTel);Page<Map<String, Object>> userPages = userInfoService.selectMapsPage(page,entityWrapper);return new PageInfoBT<>(userPages);其中,PageFactory类是⽤来接收bootstrap-table传递的参数:public class PageFactory<T> {public Page<T> defaultPage() {HttpServletRequest request = HttpContext.getRequest();int limit = Integer.valueOf(request.getParameter("limit")); //每页多少条数据int offset = Integer.valueOf(request.getParameter("offset")); //每页的偏移量(本页当前有多少条)String sort = request.getParameter("sort"); //排序字段名称String order = request.getParameter("order"); //asc或desc(升序或降序)if (ToolUtil.isEmpty(sort)) {Page<T> page = new Page<>((offset / limit + 1), limit);page.setOpenSort(false);return page;} else {Page<T> page = new Page<>((offset / limit + 1), limit, sort);if (Order.ASC.getDes().equals(order)) {page.setAsc(true);} else {page.setAsc(false);}return page;}}}使⽤mybatisplus的好处就是可以不写sql,像这样: EntityWrapper<UserInfo> entityWrapper = new EntityWrapper<UserInfo>();entityWrapper.setSqlSelect("user_name","insert(mobile, 4, 4, '****') as mobile","IF(status = 0,'未签到','已签到') as status","last_login_time"); entityWrapper.eq("manager_tel",managerTel);Page<Map<String, Object>> userPages = userInfoService.selectMapsPage(page,entityWrapper);3.spring封装对象匹配bootstrap-table格式PageInfoBT类⽤来封装对象:public class PageInfoBT<T> {// 结果集private List<T> rows;// 总数private long total;public PageInfoBT(Page<T> page) {this.rows = page.getRecords();this.total = page.getTotal();}public List<T> getRows() {return rows;}public void setRows(List<T> rows) {this.rows = rows;}public long getTotal() {return total;}public void setTotal(long total) {this.total = total;}}返回的数据格式:{"rows":[{"last_login_time":"2022-11-10 19:20:10","user_name":"王⾮","mobile":"130****2222","status":"已签到"},{"last_login_time":"2022-11-10 19:23:44","user_name":"王晓晨","mobile":"130****3333","status":"已签到"}],"total":"18"}4.sql查询隐藏⼿机号中间四位:SELECTusername,insert(mobile, 4, 4, '****'),IF(status = 0,'未签到','已签到') as status, timeFROMuser。

springboot学习----使用pageHelper实现分页功能

springboot学习----使用pageHelper实现分页功能

springboot学习----使⽤pageHelper实现分页功能⽬录 1.介绍pageHelper 2.pageHelper的基本配置 3.使⽤pageHelper实现分页功能 pageHelper是⼀款分页插件,它能很好的集成在spring boot中在它是⼀个基于mybatis的⼀款插件。

它是的底层实现技术则是使⽤动态代理实现的。

所以我们在使⽤它时,我们需要使⽤mybatis作为持久层框架。

如果有需要请参照《spring boot 集成 mybatis》 如果我们需要使⽤pageHelper的话,我们需要在spring boot项⽬中引⼊pageHelper的依赖。

以下是PageHelper的GitHub地址 在这⾥我们导⼊以下依赖:<!-- pagehelper --><dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId><version>1.2.5</version></dependency> 同样,我们在spring boot的application.properties中可以配置pageHelper的基本信息,# 指定数据库,不指定的话会默认⾃动检测数据库类型pagehelper.helperDialect=mysql# 是否启⽤分页合理化。

# 如果启⽤,当pagenum<1时,会⾃动查询第⼀页的数据,当pagenum>pages时,⾃动查询最后⼀页数据;# 不启⽤的,以上两种情况都会返回空数据pagehelper.reasonable=true# 默认值false,分页插件会从查询⽅法的参数值中,⾃动根据上⾯ params 配置的字段中取值,查找到合适的值时就会⾃动分页。

SpringBoot--Easycode插件自定义模板

SpringBoot--Easycode插件自定义模板

SpringBoot--Easycode插件⾃定义模板 最近准备做个项⽬,在配置项⽬环境的时候,使⽤Easycode插件⽣成entity,controller,service,dao,mapper,前⾯只是单纯地介绍了Easycode插件的集成,但由于使⽤的是Easycode插件默认的模板,导致最终⽣成的⽂件与⾃⼰想要的效果有所差别。

所以花了⼀下午的时间研究如何⾃定义模板,最终设计出了⼀套⽐较完整的模板。

数据类型映射 ⾸先打开idea——Settings——OtherSettings——EasyCode 如图所⽰,Type Mapper是数据类型映射,简单点来说就是数据库的字段的类型与实体类属性的类型相对应,基本上都默认的对应规则,这其实没什么好说的,如果⽣成实体类的时候提⽰某个属性没有找到对应的数据类型,就照猫画虎添加上去就⾏了。

⾃定义模板实体类entity.java ⾸先,这⾥使⽤lombok插件来代替Getter、Setter⽅法;按照模板默认的⽣成也可以。

(复制粘贴替换默认的就⾏)1 ##引⼊宏定义2 $!define34 ##使⽤宏定义设置回调(保存位置与⽂件后缀)5 #save("/entity", ".java")67 ##使⽤宏定义设置包后缀8 #setPackageSuffix("entity")910 ##使⽤全局变量实现默认包导⼊11 $!autoImport12import java.io.Serializable;13import lombok.Data;14 ##15 ####使⽤宏定义实现类注释信息16 ###tableComment("实体类")17 @Data18public class $!{} implements Serializable {19private static final long serialVersionUID = $!tool.serial();20 #foreach($column in $tableInfo.fullColumn)21 #if(${ment})/**22 * ${ment}23*/24 #end2526private $!{tool.getClsNameByFullName($column.type)} $!{};27 ## private $!{tool.getClsNameByFullName($column.type)} $!{tool.firstUpperCase($)};28 #end293031 ##若没有使⽤lombok插件,该段不要注释,按照默认的模板32 ###foreach($column in $tableInfo.fullColumn)33 ####使⽤宏定义实现get,set⽅法34 ###getSetMethod($column)35 ###end3637 }View Code测试⽣成效果(注释对应数据库,折叠起来就⾏)DAO层dao.java1 ##定义初始变量2 #set($tableName = $tool.append($, "Dao"))3 ##设置回调4 $!callback.setFileName($tool.append($tableName, ".java"))5 $!callback.setSavePath($tool.append($tableInfo.savePath, "/dao"))67 ##拿到主键8 #if(!$tableInfo.pkColumn.isEmpty())9 #set($pk = $tableInfo.pkColumn.get(0))10 #end1112 #if($tableInfo.savePackageName)package $!{tableInfo.savePackageName}.#{end}dao;1314import $!{tableInfo.savePackageName}.entity.$!{};15import java.util.List;1617/**18 * $!{ment}($!{})表数据库访问层19 * @author北林20*/2122public interface $!{tableName} {2324//通过ID查询25 $!{} selectById($!pk.shortType $!);2627//查询所有数据28 List<$!{}> selectAll();2930 ## //通过实体作为筛选条件查询31 ## List<$!{}> queryAll($!{} $!tool.firstLowerCase($!{})); 3233//新增数据34int insert($!{} $!tool.firstLowerCase($!{}));3536//修改数据37int updateById($!{} $!tool.firstLowerCase($!{}));3839//通过主键id删除数据40int deleteById($!pk.shortType $!);4142 }View Code⽣成效果映射⽂件mapper.xml1 ##引⼊mybatis⽀持2 $!mybatisSupport34 ##设置保存名称与保存位置5 $!callback.setFileName($tool.append($!{}, "Mapper.xml"))6 $!callback.setSavePath($tool.append($tableInfo.savePath, "/mapper"))78 ##拿到主键9 #if(!$tableInfo.pkColumn.isEmpty())10 #set($pk = $tableInfo.pkColumn.get(0))11 #end1213 <?xml version="1.0" encoding="UTF-8"?>14 <!DOCTYPE mapper PUBLIC "-////DTD Mapper 3.0//EN" "/dtd/mybatis-3-mapper.dtd">15 <mapper namespace="$!{tableInfo.savePackageName}.dao.$!{}Dao">1617 <resultMap type="$!{tableInfo.savePackageName}.entity.$!{}" id="$!{}Map">18 #foreach($column in $tableInfo.fullColumn)19 <result property="$!{}" column="$!" jdbcType="$!column.ext.jdbcType"/>20 #end21 </resultMap>2223 <sql id="BaseResult">24 #allSqlColumn()25 </sql>2627 <!--根据id查询-->28 <select id="selectById" resultType="$!{tableInfo.savePackageName}.entity.$!{}">29 select<include refid="BaseResult"/>30 from $!31 where $! = #{$!}32 </select>3334 <!--查询所有数据-->35 <select id="selectAll" resultMap="$!{}Map">36 select<include refid="BaseResult"/>37 from $!38 </select>39 ##40 ## <!--通过实体作为筛选条件查询-->41 ## <select id="queryAll" resultMap="$!{}Map">42 ## select<include refid="BaseResult"/>43 ## from $!44 ## <where>45 ###foreach($column in $tableInfo.fullColumn)46 ## <if test="$! != null#if($column.type.equals("ng.String")) and $! != ''#end">47 ## and $! = #{$!}48 ## </if>49 ###end50 ## </where>51 ## </select>5253 <!--新增所有列-->54 <insert id="insert" keyProperty="$!" useGeneratedKeys="true">55 insert into $!{}(<include refid="BaseResult"/>)56 values (#null,#foreach($column in $tableInfo.otherColumn)#{$!{}}#if($velocityHasNext), #end#end)57 </insert>5859 <!--通过主键id修改数据-->60 <update id="updateById">61 update $!{}62 <set>63 #foreach($column in $tableInfo.otherColumn)64 <if test="$! != null#if($column.type.equals("ng.String")) and $! != ''#end">65 $! = #{$!},66 </if>67 #end68 </set>69 where $! = #{$!}70 </update>7172 <!--通过主键id删除-->73 <delete id="deleteById">74 delete from $!{} where $! = #{$!}75 </delete>7677 </mapper>View Code⽣成效果(部分截图) 这⾥需要注意的是映射⽂件中的id跟dao层的⽅法名是⼀⼀对应的,如果修改了dao层的⽅法名,映射⽂件的id也需要修改。

pagehelperautoconfiguration 循环引用

pagehelperautoconfiguration 循环引用

pagehelperautoconfiguration 循环引用在使用Spring Boot 中的PageHelper 插件时,有时候会遇到PageHelperAutoConfiguration 循环引用的问题。

本文将深入分析循环引用的原因,提供解决方案,以确保PageHelper 插件在Spring Boot 项目中的正常使用。

1. 循环引用问题的出现原因:PageHelperAutoConfiguration 循环引用通常是由于自动配置类(AutoConfiguration)的加载顺序和依赖关系引起的。

PageHelperAutoConfiguration 作为Spring Boot 自动配置的一部分,当项目中存在多个自动配置时,可能会导致循环引用的问题。

2. 解决方案:为了解决PageHelperAutoConfiguration 循环引用的问题,可以采取以下措施:2.1. 排除自动配置:在Spring Boot 项目的配置文件(application.properties 或application.yml)中,通过配置来排除PageHelperAutoConfiguration 的自动配置。

具体方式如下:# application.yml 配置文件示例spring:autoconfigure:exclude:-com.github.pagehelper.autoconfigure.PageHelperAutoConfigur ation通过排除PageHelperAutoConfiguration,可以避免循环引用问题,但需要手动配置PageHelper 的相关参数。

2.2. 调整依赖版本:有时候循环引用问题可能是由于依赖的版本不兼容引起的。

可以尝试升级或降级PageHelper 的版本,以解决版本冲突导致的循环引用。

2.3. 显式配置PageHelper:在Spring Boot 项目的配置类中显式配置PageHelper,而不使用自动配置。

Springboot整合通用mapper和pagehelper展示分页数据(附github源码)

Springboot整合通用mapper和pagehelper展示分页数据(附github源码)

Springboot整合通⽤mapper和pagehelper展⽰分页数据(附github源码)简介springboot设计⽬的就是为了加速开发,减少xml的配置。

如果你不想写配置⽂件只需要在配置⽂件添加相对应的配置就能快速的启动的程序。

通⽤mapp通⽤mapper只⽀持对单表的操作,对单表的增删改查,⽆需在mapper.xml写对应的sql语句,只需要我们调⽤相应的接⼝即可。

pagehelppagehelper主要是在对查询的数据进⾏⼀个分页查询。

1. ⾸先在maven项⽬,在pom.xml中引⼊mapper和pagehelper的依赖<!-- pagehelp --><dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId><version>1.2.3</version></dependency><!-- 通⽤mapper --><dependency><groupId>tk.mybatis</groupId><artifactId>mapper-spring-boot-starter</artifactId><version>1.0.0</version></dependency>2 新建⼀个mymapper.java⽂件,继承mapper接⼝public interface MyMapper<T> extends Mapper<T>, MySqlMapper<T>,ConditionMapper<T> {//FIXME 特别注意,该接⼝不能被扫描到,否则会出错}这个java⽂件不能和其它mapper放在⼀起,以免被扫描到。

pagehelper分页查询用法

pagehelper分页查询用法

pagehelper分页查询用法PageHelper是一款MyBatis分页插件,可以帮助我们方便地进行分页查询,使用起来非常简单。

下面,我将为大家介绍一下PageHelper 的用法。

一、引入依赖首先,在pom.xml文件中添加以下依赖:```<dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId><version>1.3.0</version></dependency>```注意:根据自己的具体情况选择对应的版本。

二、配置PageHelper在application.yml文件中进行以下配置:```pagehelper:helperDialect: mysqlreasonable: truesupportMethodsArguments: trueparams: count=countSqloffsetAsPageNum: truerowBoundsWithCount: truepageSizeZero: truereturnPageInfo: check```- helperDialect:数据库类型,这里使用的是mysql。

- reasonable:启用合理化查询,如果pageNum<1会查询第一页,如果pageNum>pages会查询最后一页。

- supportMethodsArguments:支持通过Mapper接口参数来传递分页参数。

- params:用于从Map或ServletRequest中取值,例如getParam("pageNum"),可以不配置。

- offsetAsPageNum:true代表将RowBounds第一个参数offset 当成pageNum页码使用。

SpringBoot+Mybatis-Plus两种分页方法

SpringBoot+Mybatis-Plus两种分页方法

SpringBoot+Mybatis-Plus两种分页⽅法⽤到的依赖:<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>${mybatisplus.version}</version><exclusions><exclusion><groupId>com.baomidou</groupId><artifactId>mybatis-plus-generator</artifactId></exclusion></exclusions></dependency>⾸先配置mybatis-plus配置package com.qfclo.login.config;import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;import com.baomidou.mybatisplus.extension.plugins.PerformanceInterceptor;import org.mybatis.spring.annotation.MapperScan;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import java.util.Properties;@Configuration@MapperScan("com.qfclo.login.mapper")public class MybatisPlusConfig {/*** 分页插件*/@Beanpublic PaginationInterceptorpaginationInterceptor() {return new PaginationInterceptor();}/*** 打印 sql*/@Beanpublic PerformanceInterceptorperformanceInterceptor() {PerformanceInterceptor performanceInterceptor =new PerformanceInterceptor();//格式化sql语句Properties properties =new Properties();properties.setProperty("format", "faalse");performanceInterceptor.setProperties(properties);return performanceInterceptor;}}第⼀种⽅式,mybatis-plus原⽣QueryWrapper⽅式分页,这种⽅式⽐较简单,可以不⽤修改Mapper,适合简单的增删改查。

SpringBoot使用MyBatisPlus实现物理分页查询

SpringBoot使用MyBatisPlus实现物理分页查询

SpringBoot使⽤MyBatisPlus实现物理分页查询⼀、分页配置在MyBatis Plus 可以直接使⽤selectPage这样的分页,但返回的数据确实是分页后的数据,但在控制台打印的SQL语句其实并没有真正的物理分页,⽽是通过缓存来获得全部数据中再进⾏的分页,这样对于⼤数据量操作时是不可取的,那么接下来就叙述⼀下,真正实现物理分页的⽅法。

官⽅在分页插件上如是描述:⾃定义查询语句分页(⾃⼰写sql/mapper),也就是针对⾃⼰在Mapper中写的⽅法,但经过测试,如果不配置分页插件,其默认采⽤的分页为RowBounds的分页即逻辑分页,也就是先把数据记录全部查询出来,然在再根据offset和limit截断记录返回(数据量⼤的时候会造成内存溢出),故⽽不可取,⽽通过分页插件的配置即可达到物理分页效果。

增加⼀个配置类MybatisPlusConfig.javaimport com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;@Configurationpublic class MybatisPlusConfig {/*** mybatis-plus分页插件*/@Beanpublic PaginationInterceptor paginationInterceptor() {PaginationInterceptor page = new PaginationInterceptor();page.setDialectType("mysql");return page;}}。

SpringBoot中PageHelper插件使用配置思路详解

SpringBoot中PageHelper插件使用配置思路详解

SpringBoot中PageHelper插件使⽤配置思路详解使⽤思路1.引⼊myabtis和pagehelper依赖2.yml中配置mybatis扫描和实体类这2⾏代码pageNum:当前第⼏页pageSize:显⽰多少条数据userList:数据库查询的数据数据列表PageHelper.startPage(pageNum, pageSize);PageInfo pageInfo = new PageInfo(userList);最后返回⼀个pageInfo 对象即可,pageInfo 这个对象中只有数据⼀些信息,但是,没有成功失败的状态或者提⽰语。

真实企业中会封装⼀个返回对象,把pageInfo 放到对象中1.pom依赖⽅法⼀:使⽤原⽣的PageHelper1.在pom.xml中引⼊依赖,刷新⾃动加载jar<dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper</artifactId><version>5.2.1</version></dependency>⽅法⼆本⼈使⽤ PageHelper的starter1.导⼊pom.xml依赖<dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId><version>1.2.12</version></dependency>2.在application.properties或者application.yml格式配置pagehelper的属性⼆选⼀#pagehelper分页插件配置application.propertiespagehelper.helper-dialect=mysqlpagehelper.reasonable=truepagehelper.support-methods-arguments=truepagehelper.params=count=countSqlapplication.ymlhepagehelper:lperDialect: mysqlreasonable: truesupportMethodsArguments: trueparams: count=countSqlController层调⽤测试@RequestMapping("findallCar")public String findallCar(Model model, HttpSession session) {PageHelper.startPage(1,5);List<CarTable> carTables = service.findallCar();PageInfo<CarTable> page = new PageInfo<CarTable>(carTables);System.out.println(page);model.addAttribute("carall", carTables);session.setAttribute("caralls", carTables);return "carinsert";}PageHelper.startPage(1,5);List<CarTable> carTables = service.findallCar();PageInfo<CarTable> page = new PageInfo<CarTable>(carTables);System.out.println(page);到此这篇关于Spring Boot 中PageHelper 插件使⽤配置思路详解的⽂章就介绍到这了,更多相关Spring Boot PageHelper 插件内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!。

mybatis-plus-boot-starter原理

mybatis-plus-boot-starter原理

mybatis-plus-boot-starter原理MyBatis-Plus 是MyBatis 的增强工具,它简化了MyBatis 的开发,并提供了一些额外的功能。

`mybatis-plus-boot-starter` 是MyBatis-Plus 的Spring Boot Starter 模块,它为Spring Boot 项目集成MyBatis-Plus 提供了便利。

下面是`mybatis-plus-boot-starter` 的一些原理和关键特点:1. 自动配置: `mybatis-plus-boot-starter` 提供了自动配置,可以根据项目中的配置以及classpath 下的配置文件,自动配置MyBatis-Plus 的相关组件。

这样,开发者可以更方便地集成MyBatis-Plus,无需手动配置一些繁琐的内容。

2. 代码生成器: MyBatis-Plus 提供了一个代码生成器工具,能够根据数据库表生成实体类、Mapper 接口以及相关的XML 文件。

`mybatis-plus-boot-starter` 会自动配置这个代码生成器,使得开发者可以通过简单的配置来生成代码,减少手动编写的工作量。

3. 通用CRUD 方法: MyBatis-Plus 提供了一组通用的CRUD(Create, Read, Update, Delete)方法,可以通过简单的API 调用完成常见的数据库操作。

`mybatis-plus-boot-starter` 会自动配置这些通用方法,开发者无需手动编写这些基本的CRUD 操作。

4. 分页插件: MyBatis-Plus 集成了分页插件,可以方便地进行分页查询。

`mybatis-plus-boot-starter` 会自动配置这个分页插件,使得开发者可以通过简单的方法实现分页查询。

5. Wrapper 查询: MyBatis-Plus 提供了一种灵活的条件查询方式,称为Wrapper 查询,可以通过构建条件对象进行复杂的查询。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实现分页插件的具体步骤:
1.导入jar包
<!-- 分页插件 -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.5</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
2.(两种)在application.yml(propreties)文件加上
第一种:yml
pagehelper:
helper-dialect: mysql
reasonable: true
support-methods-arguments: true
params: count=countSql
第二种:propreties
pagehelper.helper-dialect=mysql
pagehelper.reasonable=true
pagehelper.support-methods-arguments=true
pagehelper.params=count=countSql
3.在controller控制层编写代码
@GetMapping("/getAllPerson")
public String getAllPerson(Model model,@RequestParam(defaultValue="1",value ="pageNum") Integer pageNum,
String singleName){
PageHelper.startPage(pageNum,2); //设置当前页码,每页的行数
List<Tabulation>list=aaService.getAllPerson(singleName); //查询的集合
PageInfo<Tabulation>pageInfo=new PageInfo<Tabulation>(list); //把查询的集合放入pageInfo返回给页面
model.addAttribute("pageInfo",pageInfo);
model.addAttribute("name",singleName);
return"index";
}
4.编写页面
<p>当前<span th:text="${pageInfo.pageNum}"></span>页,总<span
th:text="${pageInfo.pages}"></span>页,共<span th:text="${pageInfo.total}"></span>条记录</p>
<a th:href="@{/getAllPerson}">首页</a>
<a th:href="@{/getAllPerson(pageNum=${pageInfo.hasPreviousPage}?
${pageInfo.prePage}:1)}">上一页</a>
<a th:href="@{/getAllPerson(pageNum=${pageInfo.hasNextPage}?
${pageInfo.nextPage}:${pageInfo.pages})}">下一页</a>
<a th:href="@{/getAllPerson(pageNum=${pageInfo.pages})}">尾页</a>
5.运行
总结
使用分页插件无需创建page类,也不用在查询语句中写limit。

相关文档
最新文档