首页 > 其他分享 >使用Mybatis 的PageHelper插件实现分页查询功能

使用Mybatis 的PageHelper插件实现分页查询功能

时间:2024-08-21 13:23:13浏览次数:16  
标签:employeePageQueryDTO 分页 插件 PageHelper Mybatis 编写 查询 page

Mybatis 提供了一个分页插件PageHelper,它会帮助我们自动完成分页和获取总数量的操作,可以方便实现分页查询。

第一步,在pom.xml文件引入PageHelper依赖。

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

第二步, 编写Controller层代码(例子如下):

@GetMapping("/page")
    public Result<PageResult> page(EmployeePageQueryDTO employeePageQueryDTO){
        //将数据打印输出在控制台上
        log.info("员工分页查询,参数为: {}", employeePageQueryDTO);
        PageResult pageResult = employeeService.page(employeePageQueryDTO);
        return Result.success(pageResult);
    }

第三步,编写Service层代码(例子如下):

public PageResult page(EmployeePageQueryDTO employeePageQueryDTO) {
        //select * from employee limit 1, 10
        //开始分页查询
        //startPage方法的两个参数分别为页数,每页总记录数
        PageHelper.startPage(employeePageQueryDTO.getPage(), employeePageQueryDTO.getPageSize());
        Page<Employee> page = employeeMapper.pageQuery(employeePageQueryDTO);
        long total = page.getTotal();
        List<Employee> records = page.getResult();
        return new PageResult(total, records);
}

第四步,为Mapper层编写xml映射文件,不推荐使用注解编写Sql语句(比较复杂的sql语句比较编写在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="com.sky.mapper.EmployeeMapper">
    <select id="pageQuery" resultType="com.sky.entity.Employee">
        select * from employee
        <where>
            <if test="name != null and name != ''">
                and name like concat('%', #{name}, '%')
            </if>
        </where>
        order by create_time desc
    </select>
</mapper>

如此,便可成功实现分页查询功能。

标签:employeePageQueryDTO,分页,插件,PageHelper,Mybatis,编写,查询,page
From: https://blog.csdn.net/2301_76809936/article/details/141390797

相关文章

  • IDEA翻译插件-Translation
    简介Translation是一个为IntelliJIDEA和其他基于JetBrains的IDE(如PyCharm、WebStorm等)设计的插件。这个插件的主要功能是帮助开发者在编写代码或文档时快速翻译文本。它集成了谷歌翻译、微软翻译、DeepL翻译、OpenAI翻译、有道翻译等众多翻译引擎官网https://intell......
  • Mybatis的缓存机制
    目录1.一级缓存2.二级缓存3.三级缓存4.小结MyBatis的缓存机制分为一级缓存、二级缓存和三级缓存。1.一级缓存一级缓存是MyBatis会话级别的缓存,也称为本地缓存。每个SqlSession会维护自己的一级缓存。在同一个SqlSession中,如果执行查询操作,对于相同的S......
  • 一个AI原生数据应用数据库开发框架,专为数据3.0时代设计,支持私域问答、多数据源交互、
    前言在数字化转型的浪潮中,企业在数据处理和分析方面面临着巨大的挑战。传统软件往往存在复杂的数据库交互、低效的数据整合流程以及缺乏智能化数据分析能力等痛点。这些问题不仅拖慢了企业决策的步伐,也限制了创新的发展。因此,急需一款能够简化数据库交互、智能化数据处理的软......
  • mybatis多层嵌套 xml记录一下
     @DatapublicfinalclassWorldimplementsSerializable{privatestaticfinallongserialVersionUID=1L;privateintid=0;privatename=null;}@DatapublicfinalclassProvinceimplementsSerializable{privatestaticfinallong......
  • 【第66课】Java安全&SPEL表达式&SSTI模版注入&XXE&JDBC&MyBatis注入
    免责声明本文发布的工具和脚本,仅用作测试和学习研究,禁止用于商业用途,不能保证其合法性,准确性,完整性和有效性,请根据情况自行判断。如果任何单位或个人认为该项目的脚本可能涉嫌侵犯其权利,则应及时通知并提供身份证明,所有权证明,我们将在收到认证文件后删除相关内容。文中所涉......
  • Mybatis抓取策略
    一般分为两种:延时加载(懒加载),及时加载,并且只在进行分批查询时处理抓取策略的相关配置。什么是延时加载(懒加载)懒加载也叫延时加载,就是在使用的时候才进行加载。例如,我们在用Mybatis进行分批查询的时候,如果我们要查一个系,而一个系有成百上千个学生。当配置了懒加载后,在查询系时......
  • 将.Net AI插件集成到自己的程序中
    将AI功能添加到.NET开发是一种令人兴奋的全新体验。在这篇博文中,我们将探讨Prompty以及如何使用它来将大型语言模型(如GPT-4o)集成到您的开发流程和.NET应用程序中。Prompty简介作为AI爱好者和.NET开发人员,我们一直在寻找能够简化工作流程并提高生产力的工具。Promp......
  • 如何从零编写一个vite插件 创建 vite 插件通用模板
    初始化mkdirvite-progress&&cdvite-progress&&pnpminit1.2安装typescriptpnpmitypescript@types/node-D1.3配置tsconfig.json{"compilerOptions":{"module":"ESNext","target":"esnext&quo......
  • 一款专为IntelliJ IDEA用户设计的插件,极大简化Spring项目中的API调试过程,功能强大(附源
    前言在软件开发过程中,尤其是SpringMVC(Boot)项目中,API调试调用是一项常见但繁琐的任务。现有的开发工具虽然提供了一些支持,但往往存在效率不高、操作复杂等问题。为了处理这些痛点,提升开发效率,一款新的工具应运而生。介绍CoolRequest是一款专为IntelliJIDEA用户设计的插......
  • 易优CMS插件html.php页面缓存配置
    插件html.php页面缓存配置作用于插件前台,指定需要缓存的页面,这只在运营模式下才有效。参数规则:mca:weapp_控制器_操作名filename:生成在/data/runtime目录下的指定路径,建议参考以下p:当前url控制器的操作方法传入的全部参数变量名cache:页面缓存有效时间,单位是秒案例:假设......