SpringBoot分页插件(PageHelper)

这篇具有很好参考价值的文章主要介绍了SpringBoot分页插件(PageHelper)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

PageHelper分页插件应用

一、分页插件原理

Mybatis给开发者提供了一个拦截器接口,只要实现了该接口,就可以在Mybatis执行SQL前,作一些自定义的操作。分页插件就是在此基础上开发出来的,对于一个需要分页的SQL,插件会拦截并生成两段SQL。举一个简单的例子


// 原SQL
select * from table where a = '1'
// 拦截后的
   # 1.查询总数SQL:
   select count(1) from table where a = '1'
   # 2.分页SQL:
   select * from table where a = '1' limit 0,10

这样我们只需要根据业务逻辑开发原SQL,不需关心分页语法对原SQL的影响,拦截器已经为我们处理好了

二、实现步骤

1.在SpringBoot 的pom文件中引入分页插件的依赖

<dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper-spring-boot-starter</artifactId>
            <version>1.4.2</version>
        </dependency>

如果出现以下报错:
springboot pagehelper,spring boot,java,mybatis

这里说明你现在使用的PageHelper 依赖版本过低,往高提版本就可以

2.修改业务逻辑层分页方法

2.1原始方法

Service层

  //查询符合条件的总条数
 Long total = empMapper.selectCount(name, gender, begin, end);
 //查询符合条件的集合
  Integer start = (page - 1) * pageSize;
  List<Emp> rows = empMapper.selectPage(name, gender, start, pageSize, begin, end);
  PageBean<Emp> pageBean = new PageBean<>(total, rows);

mapper / dao层

	//查询符合条件的总条数
	Long selectCount(String name, Integer gender, LocalDate begin, LocalDate end);
  //查询符合条件的集合
  List<Emp> selectPage(String name, Integer gender, Integer start, Integer pageSize, LocalDate begin, LocalDate end);

XXXmapper.xml

//查询符合条件的集合
<select id="selectPage" resultType="com.pw.tlias.pojo.Emp">
        select id, username, password, name, gender, image, job, entrydate, dept_id, create_time, update_time
        from emp
        <where>
            <if test="name != null and name != ''">
                and name like concat('%',#{name},'%')
            </if>
            <if test="gender != null">
                and gender = #{gender}
            </if>
            <if test="begin != null and end != null">
                and entrydate between #{begin} and #{end}
            </if>
        </where>
        limit #{start},#{pageSize}
    </select>
//查询符合条件的总条数    
    <select id="selectCount" resultType="java.lang.Long">
        select count(1) emp_count
        from emp
        <where>
            <if test="name != null and name != ''">
                and name like concat('%',#{name},'%')
            </if>
            <if test="gender != null">
                and gender = #{gender}
            </if>
            <if test="begin != null and end != null">
                and entrydate between #{begin} and #{end}
            </if>
        </where>
    </select>

原始方法代码复杂

2.2使用分页插件提供的方法

Service层

 // 分页插件分页
 // 设置分页参数
 PageHelper.startPage(page,pageSize);
 // PageHelper.startPage() 后直接跟查询语句
 List<Emp> emps = empMapper.selectPage(name, gender, begin, end);
 // Page 就是分页包装的结果对象
 Page<Emp> p = (Page<Emp>) emps;
 // 封装数据
 PageBean<Emp> pageBean = new PageBean<>(p.getTotal(),p.getResult());

mapper / dao层

List<Emp> selectPage(String name,Integer gender,LocalDate begin,LocalDate end);

XXXmapper.xml

<select id="selectPage" resultType="com.pw.tlias.pojo.Emp">
        select id, username, password, name, gender, image, job, entrydate, dept_id, create_time, update_time
        from emp
        <where>
            <if test="name != null and name != ''">
                and name like concat('%',#{name},'%')
            </if>
            <if test="gender != null">
                and gender = #{gender}
            </if>
            <if test="begin != null and end != null">
                and entrydate between #{begin} and #{end}
            </if>
        </where>
    </select>

附加

springboot pagehelper,spring boot,java,mybatis文章来源地址https://www.toymoban.com/news/detail-847714.html

到了这里,关于SpringBoot分页插件(PageHelper)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Spring与Mybatis整合&&aop整合pageHelper分页插件

    Spring与MyBatis整合 的意义在于提供了一种结合优势的方式,以便更好地 开发和管理持久层(数据库访问)代码 。 这里也是总结了几点主要意义 简化配置:Spring与MyBatis整合后,可以通过Spring的配置文件来管理和配置MyBatis的相关配置,例如数据源、事务管理等,而不需要额外

    2024年02月11日
    浏览(43)
  • MyBatis与Spring整合以及AOP和PageHelper分页插件整合

    目录 前言 一、MyBatis与Spring整合的好处以及两者之间的关系 1.好处 2.关系  二、MyBatis和Spring集成 1.导入pom.xml 2.编写配置文件  3.利用mybatis逆向工程生成模型层代码 三、常用注解  四、AOP整合pageHelper分页插件 创建一个切面 测试 MyBatis是一个开源的持久层框架,而Spring是一个

    2024年02月11日
    浏览(32)
  • SpringBoot第26讲:SpringBoot集成MySQL - MyBatis PageHelper分页

    前文中,我们展示了Spring Boot与MyBatis的集成,但是没有展示分页实现。本文是SpringBoot第26讲,专门介绍分页相关知识体系和基于MyBatis的 物理分页PageHelper

    2024年02月13日
    浏览(32)
  • MyBatis与Spring集成&常用注解以及AOP和PageHelper分页插件整合

    目录 前言 一、MyBatis与Spring整合的好处以及两者之间的关系 1.好处 2.关系  二、MyBatis和Spring集成 1.导入pom.xml 2.编写配置文件  3.利用mybatis逆向工程生成模型层代码 三、常用注解  四、AOP整合pageHelper分页插件 创建一个切面 测试 MyBatis是一个开源的持久层框架,而Spring是一个

    2024年02月07日
    浏览(35)
  • 【SpringBoot】MyBatis与MyBatis-Plus分页查询 & github中的PageHelper

            笔者写这篇博客是因为近期遇到的关于两者之间的分页代码差距,其实之前也遇见过但是没有去整理这篇博客,但由于还是被困扰了小一会儿时间,所以还是需要 加深记忆 。其实会看前后端传参解决这个问题很快、不麻烦。关于这两个框架的分页代码问题主要就

    2024年02月03日
    浏览(40)
  • 6.Mybatis分页插件(PageHelper),解决PageHelper.startPage()不安全分页

    Mybatis专栏目录(点击进入…) @TOC 引入分页插件有下面2种方式,推荐使用Maven方式 (1)引入Jar包 可以从下面的地址中下载最新版本的jar包 https://oss.sonatype.org/content/repositories/releases/com/github/pagehelper/pagehelper/ http://repo1.maven.org/maven2/com/github/pagehelper/pagehelper/ 由于使用了sql解析

    2024年02月03日
    浏览(33)
  • Mybatis 分页插件 PageHelper

    今天记录下 Mybatis 分页插件 pageHelper 的使用。 有一个员工表(employee),现在要使用 pageHelper 插件实现员工的分页查询。 Employee employee类定义代码如下 EmployeeDTO EmployeeDTO定义代码如下 PageResult 最后返回给前端的数据封装在 PageResult 类中, PageHelper 类定义如下: EmployeePageQueryDTO 分

    2024年01月19日
    浏览(43)
  • Mybatis---分页插件PageHelper

    目录 一、分页插件的概念 二、PageHelper的介绍 (1)引入依赖 (2)Mybatis配置文件配置PageHelper插件 (3)测试方法 开发过程中如果要进行分页查询,需要传入页数和每页条数。返回页面数据,总条数,总页数,当前页面,每页条数等数据。此时使用PageHelper插件可以快速帮助我

    2024年02月09日
    浏览(25)
  • tk-mybatis使用介绍,springboot整合tk-mybatis、PageHelper实现分页查询

    Mybatis-Plus极大简化了我们的开发,作为mybatis的增强版,Mybatis-Plus确实帮我们减少了很多SQL语句的编写,通过其提供的API,可以方便地完成增删查改操作。但是,其实除了Mybatis-Plus以外,还有一个技术tk-mybatis可以达到同样的效果,只不过随着MP的兴起,tk-mybatis已经被渐渐淡忘

    2024年02月12日
    浏览(26)
  • 【SpringBoot】Spring Boot 项目中整合 MyBatis 和 PageHelper

    目录 前言         步骤 1: 添加依赖 步骤 2: 配置数据源和 MyBatis 步骤 3: 配置 PageHelper 步骤 4: 使用 PageHelper 进行分页查询 IDEA指定端口启动 总结         Spring Boot 与 MyBatis 的整合是 Java 开发中常见的需求,特别是在使用分页插件如 PageHelper 时。PageHelper 是一个针对 MyBat

    2024年04月25日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包