Mybatis-plus新增和修改通用寫法

一 自動填充  

在service_base中

創建包:com.atguigu.guli.service.base.handler

創建自動填充處理類:CommonMetaObjectHandler

/**
* @className: CommonMetaObjectHandler
* @description: 自動填充處理
* @date: 2020/11/19
* @author: cakin
*/
@Component
public class CommonMetaObjectHandler implements MetaObjectHandler {
    /**
     * 功能描述:當新增數據時,填充gmtCreate和gmtModified屬性
     *
     * @param metaObject 元對象
     * @author cakin
     * @date 2020/11/19
     */
    @Override
    public void insertFill(MetaObject metaObject) {
        this.setFieldValByName("gmtCreate", new Date(), metaObject);
        this.setFieldValByName("gmtModified", new Date(), metaObject);
    }

    /**
     * 功能描述:當修改數據時,填充gmtModified屬性
     *
     * @param metaObject 元對象
     * @author cakin
     * @date 2020/11/19
     */
    @Override
    public void updateFill(MetaObject metaObject) {
        this.setFieldValByName("gmtModified", new Date(), metaObject);
    }
}

二 定義API

對應新增和修改,一般定義3個API。

在新增功能方法,需要一個新增API。

在修改功能方法,首先是根據id獲回顯數據,修改完數據後,再根據id修改,需要兩個API。

三 實例

/**
* 功能描述:新增講師
*
* @param teacher 講師,待添加數據
* @return R 返回給前端的數據
* @author cakin
* @date 2020/11/19
*/
@ApiOperation("新增講師")
@PostMapping("save")
public R save(@ApiParam("講師對象") @RequestBody Teacher teacher) {
    teacherService.save(teacher);
    return R.ok().message("保存成功");
}

/**
* 功能描述:更新講師
*
* @param teacher 講師,待修改數據,teacher中必須有id參數
* @return R 返回給前端的數據
* @author cakin
* @date 2020/11/19
*/
@ApiOperation("更新講師")
@PutMapping("update")
public R updateById(@ApiParam("講師對象") @RequestBody Teacher teacher) {
    boolean result = teacherService.updateById(teacher);
    if (result) {
        return R.ok().message("修改成功");
    } else {
        return R.error().message("數據不存在");
    }
}

/**
* 功能描述:根據id獲取講師信息
*
* @param id 講師id
* @return R 返回給前端的數據
* @author cakin
* @date 2020/11/19
*/
@ApiOperation("根據id獲取講師信息")
@GetMapping("get/{id}")
public R getById(@ApiParam("講師對象") @PathVariable String id) {
    Teacher teacher = teacherService.getById(id);
    if (teacher != null) {
        return R.ok().data("item", teacher);
    } else {
        return R.error().message("數據不存在");
    }
}

四 測試

1 新增講師

2 根據id獲取講師信息

3 更新講師

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章