一、Dao-SysUserRoleDao
//思考问题:如何将两个删除方法合并为一个?
// 解决:Project-Day05
// 参数1:名字 参数2:id
int deleteObjectsById(@Param("columnName") String columnName,
@Param("columnValue") Integer columnValue);
二、Mapper-SysUserRoleMapper
<!--思考:如何使两个删除合为一个删除-->
<delete id="deleteObjectsById" >
delete from sys_user_roles
where ${columnName}=#{columnValue}
</delete>
三、ServiceImpl
@Override
public int updateObject(SysUser entity, Integer[] roleIds) {
// 合法性验证
// 1.实体内容不能为空
if(entity==null){
throw new IllegalArgumentException("保存对象不能为空");
}
//// 2.用户名不能为空
if(StringUtils.isEmpty(entity.getUsername()==null)){
throw new IllegalArgumentException("用户名不能为空");
}
// 调用方法
// 保存用户自身信息
int rows = sysUserDao.updateObject(entity);
// 删掉原始勾选角色
// sysUserRoleDao.deleteObjectsByUserId(entity.getId());
sysUserRoleDao.deleteObjectsById("user_id",entity.getId());
// 重新保存角色关系
sysUserRoleDao.insertObject(entity.getId(),roleIds);
// 返回结果
return rows;
}
sysUserRoleDao.deleteObjectsById("user_id",entity.getId());
其中user_id需要与数据库表字段对应,否则报错
使用¥表达式时,其值尽量不要是用户输入的,列、表名用¥,数值用#
四、Controller
省略