P139 Day 10. 案例-部门管理-修改部门代码
黑马程序员2023新版JavaWeb开发P139
需求:点击编辑按钮实现部门名称回显,并且可以修改部门名称。
1、DeptController.java
在DeptController.java中添加getById方法用于根据id查询部门,update方法用于修改部门。其中由于是根据id 查询部门,所以只会查到一条数据,不需要使用List集合,直接使用Dept的对象就行。
/**
* 根据id查询部门
* @param id
* @return
*/
@GetMapping("/{id}")
public Result getById(@PathVariable Integer id){
log.info("根据id查询部门:{}",id);
// 调用service查询部门
Dept dept = deptService.getById(id);
return Result.success(dept);
}
/**
* 修改部门
* @param dept
* @return
*/
@PutMapping
public Result update(@RequestBody Dept dept){
log.info("修改部门:{}",dept);
// 调用service修改部门
deptService.update(dept);
// list();
return Result.success();
}
2、DeptService.java
使用快捷键在DeptService接口中生成getById和update方法
/**
* 根据id查询部门
* @param id
* @return
*/
Dept getById(Integer id);
/**
* 修改部门
* @param dept
*/
void update(Dept dept);
3、DeptServiceImpl.java
在实现类DeptServiceImpl中重写getById和update方法。其中update方法还需要补全更新时间。
@Override
public Dept getById(Integer id){
return deptMapper.getById(id);
}
@Override
public void update(Dept dept){
//补全更新时间
dept.setUpdateTime(LocalDateTime.now());
deptMapper.upfate(dept);
}
4、DeptMapper.java
/**
* 根据id查询部门
* @return
*/
@Select("select * from dept where id = #{id}")
Dept getById(Integer id);
/**
* 修改部门
* @param dept
*/
@Update("update dept set name = #{name},update_time = #{updateTime} where id = #{id}")
void upfate(Dept dept);
注意事项
运行后,注意部门名称在数据库中设置成unique了,因此修改时要注意新的部门名称不能与已有名称相同,否则报错500