Spring Boot + Mybatis + vue2 — 实现分页查询

后端

pom.xml文件导入依赖

<!--分页查询-->
<dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId><version>1.4.6</version>
</dependency>

配置全局配置文件application.properties

# 分页
pagehelper.helper-dialect=mysql
pagehelper.reasonable=true
pagehelper.support-methods-arguments=true
pagehelper.params=count=countSql

Student.java 学生实体类,里面的属性对应student表中的字段

@Data作用:实现Getter和Setter方法

@AllArgsConstructor作用:实现全参构造方法

@NoArgsConstructor作用:实现空参构造方法

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Student{/** 所属学院 */private String school;/** 所属专业 */private String major;/** 所属班级 */private String className;/** 学生姓名 */private String studentName;
}

@Data注解的使用需要导入Lombok依赖

<!--lombok-->
<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency>

Params.java 模糊搜索包含的参数,该实体无对应的表字段

@Data
public class ScoreParams {/** 所属学院 */private String school;/** 所属专业 */private String major;/** 所属班级 */private String className;/** 学生学号 */private String studentNumber;/** 学生姓名 */private String studentName;/** 分页大小 */private Integer pageSize;/** 分页数 */private Integer pageNum;
}

StudentMapper.java

注:@Param("params") Params params命名一定要对应前端传来的参数 params: this.Params 保持一致

 List<Student> findBySearchValue(@Param("params") Params params);

StudentMapper.xml

<select id="findBySearchValue" resultType="com.domain.Student">SELECT * FROM student<where><if test="params != null and params.school != null and params.school != '' ">AND school like concat('%', #{params.school}, '%')</if><if test="params != null and params.major != null and params.major != '' ">AND major like concat('%', #{params.major}, '%')</if><if test="params != null and params.className != null and params.className != '' ">AND class_name like concat('%', #{params.className}, '%')</if>AND student_number like concat('%', #{params.studentNumber}, '%')</if><if test="params != null and params.studentName != null and params.studentName != '' ">AND student_name like concat('%', #{params.studentName}, '%')</if></where>
</select>

StudentService.java

 PageInfo<Student> findBySearchValue(Params params);

StudentServiceImpl.java

 @Overridepublic PageInfo<Student> findBySearchValue(Params params) {/** 分页查询 */PageHelper.startPage(params.getPageNum(),params.getPageSize());List<Score> bySearchValue = studentMapper.findBySearchValue(params);return PageInfo.of(bySearchValue);}

StudentController.java

@GetMapping("/search")public AjaxResult findBySearchValue(Params params){PageInfo<Student> findBySearchValue = studentService.findBySearchValue(params);return AjaxResult.success(findBySearchValue);}

前端

我使用的是ElementUI,进入官网:https://element.eleme.cn/2.0/#/zh-CN/component/pagination,任意选择一个分页的样式

SelectStudent.vue

<template><div><div><el-table :data="Table" height="380" border style="width: 100%;"><el-table-column prop="school" label="学院" align="center" width="140"> </el-table-column><el-table-column prop="major" label="专业" align="center" width="120"> </el-table-column><el-table-column prop="className" label="班级" align="center" width="120"> </el-table-column><el-table-column prop="studentName" label="姓名" align="center" width="100"> </el-table-column><el-table-column label="操作" width="250" align="center"><el-button type="success" icon="el-icon-view" /><el-button type="primary" icon="el-icon-edit" /><el-button type="danger" icon="el-icon-delete" /></el-table-column></el-table></div><!-- 分页查询 --><div class="block" style="margin-left: 600px;margin-top: 20px;"><el-pagination@size-change="handleSizeChange"@current-change="handleCurrentChange":current-page="Params.pageNum":page-size="Params.pageSize":page-sizes="[10, 20, 30, 40]"layout="total, sizes, prev, pager, next":total="total"></el-pagination></div></div>
</template>

SelectStudent.vue

export default {name: "ScoreSelct",data() {return {total: 0,// 搜索框参数Params:{school: '',major: '',className: '',studentName: '',pageNum: 1,pageSize: 10,},// 查询表格scoreTable: [],}},// 页面加载时调用created(){this.findBySearchValue()},methods:{// 模糊搜索findBySearchValue(){request.get('/search',{params: this.Params}).then(res => {if(res.code === '200'){this.Table = res.data.listthis.total = res.data.totalthis.$message.success('查询成功')}else{this.$message.error('查询失败')}})},// 清空输入框内容reset(){this.Params={school: '',major: '',className: '',studentName: '',},this.findBySearchValue()},// 点击查询时,触发10条/页handleSizeChange(pageSize){this.searchParams.pageSize = pageSize;this.findBySearchValue();},// 点击1,2,3页数切换handleCurrentChange(pageNum){this.searchParams.pageNum = pageNum;this.findBySearchValue();},}
}
</script>

res.data.list:具体需要看数据所在的位置,这里的数据是位于data下的list数组内

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2659475.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

flink内存配置

flink内存配置 配置 TaskManager 内存 | Apache Flink

java设计模式学习之【中介者模式】

文章目录 引言中介者模式简介定义与用途实现方式 使用场景优势与劣势在Spring框架中的应用聊天室示例代码地址 引言 想象一下一座忙碌的机场&#xff0c;各种飞机需要起飞、降落&#xff0c;而不同的飞行活动之间必须互不干扰。如果没有一个统一的控制系统&#xff0c;这将是一…

设计模式(4)--对象行为(6)--备忘录

1. 意图 在不破坏封装的前提下&#xff0c;捕获一个对象的内部状态&#xff0c;并在该对象之外保存这个状态。 这样以后可以将该对象恢复到原先保存的状态。 2. 三种角色 原发器(Originator)、备忘录(Memento)、负责人(Caretaker) 3. 优点 3.1 保持了封装边界。屏蔽了原发器的…

31.Java程序设计-基于Springboot的鲜花商城系统的设计与实现

引言 背景介绍&#xff1a;鲜花商城系统的兴起和发展。研究目的&#xff1a;设计并实现一个基于Spring Boot的鲜花商城系统。论文结构概述。 文献综述 回顾相关鲜花商城系统的设计与实现。分析不同系统的优缺点。强调Spring Boot在系统设计中的优越性。 系统设计 需求分析 用户…

Docker自建私人云盘系统

Docker自建私人云盘系统。 有个人云盘需求的人&#xff0c;主要需求有这几类&#xff1a; 文件同步、分享需要。 照片、视频同步需要&#xff0c;尤其是全家人都是用的同步。 影视观看需要&#xff08;分为家庭内部、家庭外部&#xff09; 搭建个人网站/博客 云端OFFICE需…

猫冻干哪个牌子的口碑最好?业内人士分享这五款口碑好的猫冻干

很多新手铲屎官在为自家猫咪购买猫食品时&#xff0c;都会非常注重成分和安全性。养了这么多年的猫&#xff0c;可以说&#xff0c;他们购买过的猫食品数量一定比大多数人都要多。自从冻干猫粮流行起来之后&#xff0c;很多铲屎官都开始给自家的猫咪喂冻干。冻干不仅可以作为主…

C#高级 02异步编程

基础知识 1.什么是异步任务 包含了异步任务的各种状态的一个引用类型 1)正在运行、完成、结果、报错等 2)另有ValueTask值类型版本对于异步任务的抽象 1)开启异步任务后&#xff0c;当前线程并不会阻塞&#xff0c;而是可以去做其他事情 2)异步任务&#xff08;默认&#xff…

springboot返回vue id值变了

数据库里面存的616 到前端就变成了600了 后面大佬指导了下才知道是 mysql int类型太长解析不了 springboot用Long类型也不行&#xff0c; 换成String类型就可以了

21.仿简道云公式函数实战-数学函数-COS

1. COS函数 COS 函数可用于计算角度的余弦值&#xff0c;返回 -1 到 1 之间的数值。 2. 函数用法 COS(弧度) 3. 函数示例 如计算 COS(60) 的值&#xff0c;可设置公式为COS(RADIANS(60))&#xff0c;返回 0.5。 4. 代码实战 首先我们在function包下创建math包&#xff0…

Apipost-Helper使用流程

Apipost-Helper是由Apipost推出的IDEA插件&#xff0c;写完接口可以进行快速调试&#xff0c;且支持搜索接口、根据method跳转接口&#xff0c;还支持生成标准的API文档&#xff0c;注意&#xff1a;这些操作都可以在代码编辑器内独立完成&#xff0c;非常好用&#xff01;这里…

码住!8个小众宝藏的开发者学习类网站

1、simplilearn simplilearn是全球排名第一的在线学习网站&#xff0c;它的课程由世界知名大学、顶级企业和领先的行业机构通过实时在线课程设计和提供&#xff0c;其中包括顶级行业从业者、广受欢迎的培训师和全球领导者。 2、VisuAlgo VisuAlgo是一个免费的在线学习算法和数…

03-JWT令牌和普通令牌的区别,JWT令牌的格式和生成

JWT令牌 普通令牌问题 普通令牌的问题: 以OAuth2的密码模式为例进行说明,客户端每次访问资源时, 资源服务都需要远程请求认证服务去校验令牌的合法性导致执行性能低 如果能够让资源服务自己校验令牌的合法性&#xff0c;这样就可以省去远程请求认证服务的成本并提高性能 常见…

SpringCloud(H版alibaba)框架开发教程---附源码 一

源码地址&#xff1a;https://gitee.com/jackXUYY/springboot-example 创建订单服务&#xff0c;支付服务&#xff0c;公共api服务&#xff08;共用的实体&#xff09;&#xff0c;eureka服务 1.cloud-consumer-order80 2.cloud-provider-payment8001 3.cloud-api-commons 4.…

国标标准和行业标准使用介绍

场景 我现在所在行业是交通行业&#xff0c;主要做城市交通信控相关的工作&#xff0c;后续可能会涉及高速、收费站、稽核收费等业务场景在做产品开发时&#xff0c;我们需要有一个标准可以参考&#xff0c;这些标准必须是公认的&#xff0c;这时就用到了 国家标准、行业标准等…

仓储革新:AR技术引领物流进入智慧时代

根据《2022年中国物流行业研究&#xff1a;深度探析行业现状&#xff08;智能设备及智能软件&#xff09;》&#xff0c;报告中提及&#xff1a;“中国社会物流总额依然保持着较为良好的增长态势&#xff0c;年增速已恢复至常年平均水平。2021年社会物流总额细分中工业物流总额…

有没有什么软件可以用来线上走审批流程的?

有没有什么软件可以用来线上走审批流程的&#xff1f; 这就不得不提一嘴我们简道云了——因为&#xff0c;用简道云来搭建审批流程是特别“省”的&#xff1a; 省沟通&#xff1a;不用费心费力跟外部开发者沟通需求&#xff0c;自己动手做一点试一点&#xff1b; 省时间&…

数据通信基础知识

消息和信息、信号和数据 消息和信息 通信是在源点与终点之间传递消息或者信息。 信息和消息有着不同的概念。 消息是指能向人们表达客观物质运动和主观思维活动的文字、符号、数据、语音和图像等。它有两个特点: 能被通信双方所理解可以相互传递。 信息是指包含在消息中对通…

JOSEF约瑟 双位置继电器 DCS-12/110V 线圈电压直流110V 板前安装

系列型号&#xff1a; DCS-11双位置继电器&#xff1b; DCS-12双位置继电器&#xff1b; DCS-13双位置继电器&#xff1b; RXMVB2 RK 251 204双位置继电器&#xff1b; RXMVB2 RK 251 205双位置继电器&#xff1b; RXMVB2 RK 251 106双位置继电器&#xff1b; 一、用途 …

本地缓存:Caffeine入门使用

概况 回顾互联网应用发展史&#xff0c;可以发现一个通用并且普遍存在的一个工作过程。如下图所示&#xff0c;用户从浏览器发出请求 -> 网络转发请求 -> 应用服务业务处理 -> 底层存储信息获取&#xff0c;然后逆向的返回用户&#xff0c;形成页面给予用户相应信息。…

[递归回溯枚举] 装载问题

装载问题 题目描述 有一批共 n 个集装箱要装上 2 艘载重量分别为 c1和 c2的轮船&#xff0c;其中集装箱 i 的重量为 wi&#xff0c;且 装载问题要求确定&#xff0c;是否有一个合理的装在方案可将这 n 个集装箱装上这 2 艘轮船。如果有&#xff0c;找出最优装载方案。 关于输…