SpringBoot+Mybatis实现分页查询[通俗易懂]

您所在的位置:网站首页 java如何实现分页查询数据 SpringBoot+Mybatis实现分页查询[通俗易懂]

SpringBoot+Mybatis实现分页查询[通俗易懂]

2024-07-09 22:59:43| 来源: 网络整理| 查看: 265

大家好,又见面了,我是你们的朋友全栈君。

文章目录前言1.引入依赖2.Mapper中接口3.修改XML文件4.controller层调用接口5.测试总结前言

分页查询是在web开发中常用的一种技术,当某个页面查询返回的数据量较大时,为了提高性能和用户体验不能将所有数据一次性返回给过前端,这时候就需要用到分页查询了

PageHelper是一款开源的Mybatis第三方物理分页插件,spring boot项目中集成PageHelper插件非常简单,下面将为大家详细介绍;

插件地址:https://github.com/pagehelper/Mybatis-PageHelper/blob/master/wikis/zh/HowToUse.md

1.引入依赖

在上一篇文章Mybatis 实现基本的增删改查 (基于Mybatis-generator插件方式)的基础上,在pom.xml中添加如下依赖:

代码语言:javascript复制 com.github.pagehelper pagehelper-spring-boot-starter 1.2.3 2.Mapper中接口

在EmployeeMapper.java中新增findByPaging接口,接口返回类型为Page

代码语言:javascript复制public interface EmployeeMapper { int deleteByPrimaryKey(Long id); int insert(Employee record); int insertSelective(Employee record); Employee selectByPrimaryKey(Long id); int updateByPrimaryKeySelective(Employee record); int updateByPrimaryKey(Employee record); Page findByPaging(Map param); }3.修改XML文件

在EmployeeMapper.xml中添加上面接口对应Sql查询语句,可以看到使用插件的方式查询时,这里入参的类型为com.github.pagehelper.Page

代码语言:javascript复制 select * from employee where 1=1 and age = #{age} 4.controller层调用接口

EmployeeController.java中新增findBypaging方法

代码语言:javascript复制 @ApiOperation(value = "分页查询") @GetMapping("findBypaging") public ResultMsg findByPaging(Integer age,Integer pageNum, Integer pageSize){ PageHelper.startPage(pageNum,pageSize); Map param = new HashMap(); param.put("age",age); Page data = employeeMapper.findByPaging(param); JSONObject result = new JSONObject(); result.put("employees",data); result.put("pages",data.getPages()); result.put("total",data.getTotal()); return ResultMsg.getMsg(result); }

ps:这里分页查询参数的传递方式和普通的查询是一样的,map的方式添加就可以了

5.测试

编写一个测试用例,向数据库中批量插入200个员工数据

代码语言:javascript复制@RunWith(SpringRunner.class) @SpringBootTest public class HrefApplicationTests { @Autowired private EmployeeMapper employeeMapper; @Autowired private IdWorker idWorker; public static String getRandomStr(int length) { String base = "abcdefghijklmnopqrstuvwxyz0123456789"; int randomNum; char randomChar; Random random = new Random(); // StringBuffer类型的可以append增加字符 StringBuffer str = new StringBuffer(); for (int i = 0; i < length; i++) { // 可生成[0,n)之间的整数,获得随机位置 randomNum = random.nextInt(base.length()); // 获得随机位置对应的字符 randomChar = base.charAt(randomNum); // 组成一个随机字符串 str.append(randomChar); } return str.toString(); } Employee createRadomEmployee() { Employee employee = new Employee(); employee.setAddress("北新街" + getRandomStr(5)); employee.setAge("22"); employee.setGender(new Short("1")); employee.setCreateTime(new Date()); employee.setName(getRandomStr(10)); employee.setId(idWorker.nextId()); return employee; } @Test public void insertEmployees() { for(int i=0;i


【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭