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

指路(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修饰的字段之外带有各参数的构造器方法
@Data
@NoArgsConstructor
@AllArgsConstructor
public class PageBean {
    //属性名和接口文档保持一致
    private long total;//总记录数
    private List rows;//数据列表
}
4)@RequestParam:其中的defaultValue属性设置默认值

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

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

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

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

参数一:表示起始索引

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

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

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

查询结果:

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

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

前后端联调:

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

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

首先引入PageHelper的相关依赖


        
            com.github.pagehelper
            pagehelper-spring-boot-starter
            1.4.2
        

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

EmpService实现类

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

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

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

EmpMapper

    @Select("select * from emp")
    public List list();

2.分页查询(带条件)

思路流程:

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

分页查询:PageHelper分页插件

代码编写:

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

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

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

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

同包同名


xml文件上的约束

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

全类名获取方式

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

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

查询结果:

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

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

前后端联调:

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

3.删除员工

代码编写:

动态SQL:标签

collection:集合名称ids

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

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

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

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

删除结果:

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

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

前后端联调:

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

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

你可能感兴趣的:(学习,java,spring,spring,boot,ide)