黑马程序员JavaWeb开发|案例:tlias智能学习辅助系统(2)员工管理|分页查询、分页查询(带条件)

news/2024/7/16 8:37:48 标签: 学习, java, spring, spring boot, ide

指路(1)准备工作、部门管理链接👇黑马程序员JavaWeb开发|案例:tlias智能学习辅助系统(上)准备工作、部门管理-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/YOYU_/article/details/135476566?spm=1001.2014.3001.5501

三、员工管理

1.分页查询

思路流程:

 前端需要给服务端传递的参数有:

  • 当前页码:page
  • 每页展示记录数:pageSize

后端需要给前端返回的参数有:

  • 数据列表:List
  • 总记录数:total

返回的两项数据类型不一致,返回类型是唯一的,所以需要将这两个参数一同封装在一个实体类PageBean里面,一起返回。

代码编写:

创建实体类过程中,只需要写属性名即可,其余的get,set方法,无参构造和有参构造都可以通过注解的方式获得。

1)@Data:提供了更综合的生成代码功能(@Getter+@Setter+@ToString+@EqualAndHashCode)
2)@NoArgsConstructor:为实体类生成无参的构造器
3)@AllArgsConstructor:为实体类生成除了static修饰的字段之外带有各参数的构造器方法
java">@Data
@NoArgsConstructor
@AllArgsConstructor
public class PageBean {
    //属性名和接口文档保持一致
    private long total;//总记录数
    private List rows;//数据列表
}
4)@RequestParam:其中的defaultValue属性设置默认值

下图为api文档的前端请求参数:

5)limit后面两个参数的含义:

参数一:表示起始索引

参数二:表示每页展示的记录数

两个参数的关系:起始索引 = (页码 - 1)* 每页展示的记录数

代码编写过程中,start表示起始索引,page表示页码,pageSize表示每页展示的记录数

查询结果:

前后端联调:

分页插件PageHelper:简化原始繁琐代码

首先引入PageHelper的相关依赖

java"><!--        PageHelper分页插件-->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper-spring-boot-starter</artifactId>
            <version>1.4.2</version>
        </dependency>

接着重写EmpMapper方法和EmpService方法,对于EmpController方法不需要重写,因为Controller只是和前端交互,在后端更改代码的时候,不需要进行改动。

EmpService实现类

java">    @Override
    public PageBean page(Integer page, Integer pageSize) {
        //1.设置分页参数
        PageHelper.startPage(page, pageSize);

        //2.执行查询
        List<Emp> list = empMapper.list();
        //list是分页查询结果的封装类page类型
        Page<Emp> p = (Page<Emp>) list;

        //3.封装PageBean对象
        PageBean pageBean = new PageBean(p.getTotal(), p.getResult());
        return pageBean;
    }

EmpMapper

java">    @Select("select * from emp")
    public List<Emp> list();

2.分页查询(带条件)

思路流程:

条件查询:动态SQL-XML映射文件

分页查询:PageHelper分页插件

代码编写:

1)@DateTimeFormat:属性pattern用来指定前端传来的日期格式

动态SQL,需要定义xml映射文件,其三点规范为:

  1. 同包同名(与EmpMapper接口需要同包同名);
  2. namespace属性要与EmpMapper接口的全类名保持一致;
  3. xml文件里面sql语句的id需要与EmpMapper接口的方法名保持一致,并且保持返回的类型resultType一致。

👆同包同名

<?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">

👆xml文件上的约束

👆全类名获取方式

👆resultType代表的是单条记录封装的类型,此处为Emp这个实体类,拷贝其全类名

查询结果:

前后端联调:

3.删除员工

代码编写:

动态SQL:<foreach>标签

collection:集合名称ids

item:集合遍历出来的元素、项id

separator:每一次遍历使用的分隔符

open:遍历开始前拼接的片段

close:遍历结束后拼接的片段

删除结果:

前后端联调:


http://www.niftyadmin.cn/n/5315903.html

相关文章

【unity】精灵图集(Sprite Atlas)快速上手

Sprite Atlas&#xff08;精灵图集&#xff09;是一种将多个小图&#xff08;精灵&#xff09;打包成一个大图的技术。它的主要目的是优化游戏或应用程序的性能&#xff0c;减少内存占用和渲染开销。 创建&#xff1a; 右键直接创建&#xff1b;存放精灵的文件夹拖入 使用&…

go 的内存布局和分配原理

go 之所以在高并发环境下表现优异&#xff0c;除了咱们都知道的 GMP 模型&#xff0c;其实 go 的内存布局和分配机制也起到了不少作用。 1. 分配内存三大组件 go 分配内存的过程&#xff0c;主要由三大组件所管理&#xff0c;级别从上到下分别是&#xff1a; mheap go 在程…

暴雨信息发布算力网络应用平台打造零感知算网服务新模式

为进一步优化算力网络应用服务能力和降低算力网络使用难度&#xff0c;暴雨信息突破基于算力网络的实例跨域协同与迁移、基于测试评估的应用度量和解构等技术&#xff0c;研发并推出算力网络应用平台。该系统通过提供一种即开即用、按需付费的零感知算网应用服务&#xff0c;使…

字体图标操作步骤

网站 直接点击 进去后长这样&#xff0c;点免费的添加 保存下载 保存后解压 把fonts文件夹复制粘贴到我们自己项目 可以放在同images的路径下 引入 来源于 再style中粘贴 font-face {font-family: icomoon;src: url(fonts/icomoon.eot?jyg4cp);src: url(fonts/icomoo…

找出字符串中第一个匹配项的下标(Leetcode28)

例题&#xff1a; 分析&#xff1a; 题目的意思就是&#xff1a; 先给出一个字符串pattern&#xff0c;要拿着pattern字符串和原始字符串&#xff08;origin&#xff09;比对&#xff0c;若在origin中找到了pattern字符串&#xff0c;则返回pattern字符串在原始字符串origin中的…

LLaMA Efficient Tuning

文章目录 LLaMA Efficient Tuning安装 数据准备浏览器一体化界面单 GPU 训练 train_bash1、预训练 pt2、指令监督微调 sft3、奖励模型训练 rm4、PPO 训练 ppo5、DPO 训练 dpo 多 GPU 分布式训练1、使用 Huggingface Accelerate2、使用 DeepSpeed 导出微调后的模型 export_model…

K8S集群调度(2)

schedule的调度算法 预算策略 过滤出合适的节点 优先策略 选择部署的节点 nodeName:硬匹配&#xff0c;不走调度策略。node01. nodeSelector: 根据节点的标签选择&#xff0c;会走调度的算法。 只要是走调度算法&#xff0c;在不满足预算策略的情况下&#xff0c;所有po…

m401a电视盒子

1.1 刷机教程 魔百盒M401A成功刷入armbian_m401a刷armbian-CSDN博客 https://blog.csdn.net/xiaokai1999/article/details/129623435 江苏版M401A原版 刷机ARMBIAN注意要点 http://www.taodudu.cc/news/show-5341375.html?actiononClick 1.2 查看系统内核 cat /etc/ophub-…