上个小节我们实现了新增角色这个功能,那么按照CRUD的顺序,本小节我们要做修改角色信息的功能。
一、编写持久层代码
在TbDeptDao.xml
文件中,定义SQL语句。
<update id="update" parameterType="com.example.emos.api.db.pojo.TbDept">
UPDATE tb_dept
SET dept_name=#{deptName},
tel=#{tel},
email=#{email},
`desc`=#{desc}
WHERE id=#{id}
</update>
在TbDeptDao.java
接口中,定义抽象DAO方法。
public interface TbDeptDao {
……
public int update(TbDept dept);
}
三、编写业务层代码
在DeptService.java
接口中,定义抽象方法。
public interface DeptService {
……
public int update(TbDept dept);
}
在DeptServiceImpl.java
类中,实现抽象方法。
public class DeptServiceImpl implements DeptService {
……
@Override
public int update(TbDept dept) {
int rows=deptDao.update(dept);
return rows;
}
}
四、编写Web层代码
创建UpdateDeptForm.java
类,封装Ajax提交的数据。
@Schema(description = "更新部门表单")
@Data
public class UpdateDeptForm {
@NotNull(message = "id不能为空")
@Schema(description = "部门ID")
private Integer id;
@NotBlank(message = "deptName不能为空")
@Schema(description = "部门名称")
private String deptName;
@Pattern(regexp = "^1\\d{10}$|^(0\\d{2,3}\\-){0,1}[1-9]\\d{6,7}$",message = "tel内容不正确")
@Schema(description = "电话")
private String tel;
@Email(message = "email内容不正确")
@Schema(description = "邮箱")
private String email;
@Schema(description = "备注")
@Length(max = 20,message = "desc不能超过20个字符")
private String desc;
}
在DeptController.java
类中,定义Web方法,然后就可以用Swagger测试这个Web方法了。
public class DeptController {
……
@PostMapping("/update")
@Operation(summary = "更新部门")
@SaCheckPermission(value = {"ROOT", "DEPT:UPDATE"}, mode = SaMode.OR)
public R update(@Valid @RequestBody UpdateDeptForm form) {
TbDept dept = new TbDept();
dept.setId(form.getId());
dept.setDeptName(form.getDeptName());
dept.setTel(form.getTel());
dept.setEmail(form.getEmail());
dept.setDesc(form.getDesc());
int rows = deptService.update(dept);
return R.ok().put("rows", rows);
}
}