谷粒学苑项目-第一章讲师管理模块新增/修改讲师-1.7

一、自动填充封装

有一些字段需要自动填充而避免每次setter,比如创建时间和修改时间字段。

1. 自动填充步骤(共两步)

  • 第一步:在需要自动填充的实体类上加上注解:@TableField(fill = FieldFill.INSERT)
@ApiModelProperty("创建时间")
@TableField(value = "gmt_create",fill = FieldFill.INSERT)
private Date gmtCreate;

@ApiModelProperty("更新时间")
@TableField(value = "gmt_modified",fill = FieldFill.INSERT_UPDATE)
private Date gmtModified;
  • 第二步:实现MetaObjectHandler类并由Spring IOC容器管理,并重写insertFill和updateFill方法;

    在service-base模块中添加创建包handler,创建自动填充类 MyMetaObjectHandler

@Component
public class MyMetaObjectHandler implements MetaObjectHandler {

    @Override
    public void insertFill(MetaObject metaObject) {
        this.setFieldValByName("gmtCreate",new Date(),metaObject);
        this.setFieldValByName("gmtModified",new Date(),metaObject);
    }

    @Override
    public void updateFill(MetaObject metaObject) {
        this.setFieldValByName("gmtModified",new Date(),metaObject);
    }
}

  由于MyMetaObjectHandler和调用的edu_service不在同一个子模块下,所以需要edu_service扫描  MyMetaObjectHandler所在的包。可以使用配置类@Import,可以使用@CommonScan    

二、controller方法定义 

1. 新增

 @ApiOperation("新增讲师功能")
    @PostMapping
    public Resault addTeacher(@RequestBody EduTeacher eduTeacher){
        boolean flag = eduTeacherService.save(eduTeacher);
        if(flag){
            return Resault.ok();
        }else {
            return Resault.error();
        }
    }

2. 修改

做修改钱一般需要先根据ID查询出结果,然后再做修改

@ApiOperation("根据id,查询讲师")
@GetMapping("/getTeacherById/{id}")
public Resault getTeacherById(@PathVariable String id){
    EduTeacher eduTeacher = eduTeacherService.getById(id);
    return Resault.ok().data("teacher",eduTeacher);
}
@ApiOperation("修改讲师")
//@PostMapping("/editteacher")
@PutMapping("/editteacher")
public Resault EditTeacher(@RequestBody EduTeacher eduTeacher){
    boolean edit = eduTeacherService.updateById(eduTeacher);
    if(edit){
        return Resault.ok();
    }else {
        return Resault.error();
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_51725434/article/details/128602308
今日推荐