一 自動填充
在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 更新講師