SpringBoot实战-(5) 讲师分页、条件查询,统一异常处理,统一日志处理

本文介绍了SpringBoot实战中的关键知识点,包括使用分页插件进行分页查询,结合条件进行组合查询,添加讲师、按ID查询和修改讲师的操作。还详细讲解了全局异常处理和自定义异常类的创建,以及如何进行统一的日志处理,如更改日志级别,自定义logback配置文件以实现更细致的日志记录。
摘要由CSDN通过智能技术生成

以下内容参考自下面视频:

https://www.bilibili.com/video/BV1y7411y7am

1.分页查询

1.1 配置分页插件

在EduConfig类中配置

在这里插入图片描述

/**
 * 分页插件
 */
@Bean
public PaginationInterceptor paginationInterceptor(){
   
    return new PaginationInterceptor();
}
1.2 在Controller中调用
/**
 * 分页查询
 */
@GetMapping("pageTeacher/{current}/{limit}")
public R pageListTeacher(@PathVariable long current,@PathVariable long limit){
   
    Page<EduTeacher> pageTeacher = new Page<>(current, limit);
    teacherService.page(pageTeacher, null);

    long total = pageTeacher.getTotal();
    List<EduTeacher> records = pageTeacher.getRecords();

    return R.ok().data("total",total).data("records",records);
}

2.条件、分页组合查询

在这里插入图片描述

2.1 创建条件查询实体类
@Data
public class TeacherQuery {
   
    @ApiModelProperty(value = "教师名称,模糊查询")
    private String name;

    @ApiModelProperty(value = "头衔 1高级讲师 2首席讲师")
    private Integer level;

    @ApiModelProperty(value = "查询开始时间", example = "2019-01-01 10:10:10")
    private String begin;//注意,这里使用的是String类型,前端传过来的数据无需进行类型转换

    @ApiModelProperty(value = "查询结束时间", example = "2019-12-01 10:10:10")
    private String end;
}
2.2 在Controller中调用

@RequestBody(required = false) 传递的参数以json形式传递,可以没有

@PostMapping 使用Post才能接收到json形式的参数,get不行

/**
 * 条件、分页组合查询
 */
@PostMapping("pageTeacherCondition/{current}/{limit}")
public R pageTeacherCondition(@PathVariable long current, @PathVariable long limit,
                              @RequestBody(required = false)TeacherQuery teacherQuery){
   
    //创建page对象
    Page<EduTeacher> pageTeacher = new Page<>(current, limit);

    //创建wrapper对象
    QueryWrapper<EduTeacher> wrapper = new QueryWrapper<>();

    //判断teacherQuery对象中的属性是否为空,不为空的话,添加到wrapper中
    String name = teacherQuery.getName();
    Integer level = teacherQuery.getLevel();
    String begin = teacherQuery.getBegin();
    String end = teacherQuery.getEnd();

    if (!StringUtils.isEmpty(name)){
   
        wrapper.like("name",name);
    }
    if (!StringUtils.isEmpty(level)){
   
        wrapper.eq("lever",level);
    }
    if (!StringUtils.isEmpty(begin)){
   
        wrapper.ge("gmt_create",begin);
    }
    if (!StringUtils.isEmpty(end)){
   
        wrapper.ge("gmt_create",end);
    }

    //查询
    teacherService.page(pageTeacher, wrapper);

    long total = pageTeacher.getTotal();
    List<EduTeacher> records = pageTeacher.getRecords();

    return R.ok().data("total",total).data("records",records);
}

3.添加讲师

3.1 添加注解

在实体类的属性上添加字自动填充注解

@ApiModelProperty(value = "创建时间")
@
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值