好好编程-物流项目11【用户管理-修改和删除】

public void getUpdateUserInfo(Integer id,Model model) {

RoleExample roleExample = new RoleExample();

List roles = roleMapper.selectByExample(roleExample );

if(id !=null && id > 0){

// 表示更新数据,需要根据id查询用户信息

User user = userMapper.selectByPrimaryKey(id);

// 查询用户具有的角色信息

List roleIds = userMapper.selectRoleIdByUserId(id);

model.addAttribute(“user”, user);

model.addAttribute(“roleIds”, roleIds);

}

model.addAttribute(“roles”, roles);

}

UserMapper接口

List selectRoleIdByUserId(Integer id);

sql语句

select role_id from t_user_role where user_id = #{id}

1.3修改页面

    • <input name=“user.userName” type=“text” value=“${user.userName}”

      class=“dfinput” />

      账号不能超过30个字符

    • <input name=“user.realName” type=“text” value=“${user.realName}”

      class=“dfinput” />

    • <input name=“user.password” type=“password” value=“${user.password}”

      class=“dfinput” />

    • <input name=“confirmPassword” value=“${user.password}”

      type=“password” class=“dfinput” />

    • <input name=“user.phone” type=“text” value=“${user.phone}”

      class=“dfinput” />

    • <input name=“user.email” type=“text” value=“${user.email}”

      class=“dfinput” />

    • <c:set var=“flag” value=“false”></c:set>

      <c:forEach items=“${roles }” var=“role”>

      <c:forEach items=“${roleIds }” var=“roleId”>

      <c:if test=“${roleId eq role.roleId }”>

      <c:set var=“flag” value=“true”></c:set>

      </c:if>

      </c:forEach>

      <input type=“checkbox” f l a g e q t r u e ? ′ c h e c k e d ′ : ′ ′ v a l u e = " {flag eq true?'checked':'' } value=" flageqtrue?checked:′′value="{role.roleId }" name=“roles”>

      ${role.roleName }  

      <c:set var=“flag” value=“false”></c:set>

      </c:forEach>

    • <input name=“” type=“submit”

      class=“btn” value=“确认保存” />

      在这里插入图片描述

      在这里插入图片描述

      1.4提交修改数据

      控制层不用修改,修改service层的实现类,如下:

      @Override

      public void saveOrUpdate(UserDto userDto) throws Exception {

      // 获取User对象

      User user = userDto.getUser();

      // 获取关联的角色信息

      List roles = userDto.getRoles();

      // 判断是添加还是修改数据

      if(user.getUserId()!=null && user.getUserId() > 0){

      // 表示userId存在,说明是更新

      // 修改用户

      userMapper.updateByPrimaryKeySelective(user);

      // 根据用户ID删除管理的角色信息

      userMapper.deleteRoleIdByUserId(user.getUserId());

      // 再保存用户和角色的关联关系

      if(roles!=null && roles.size() > 0){

      for (Integer roleId : roles) {

      userMapper.inserUserIdAndRoleId(user.getUserId(),roleId);

      }

      }

      }else{

      // 不存在id说明是添加数据

      // 先添加用户数据 获取生成的userId

      userMapper.insert(user);

      // 再保存用户和角色的对应关系,在一个事务中处理

      if(roles!=null && roles.size() > 0){

      for (Integer roleId : roles) {

      userMapper.inserUserIdAndRoleId(user.getUserId(),roleId);

      }

      }

      }

      }

      UserMapper接口

      void deleteRoleIdByUserId(Integer userId);

      sql语句

      delete from t_user_role where user_id=#{id}

      最后

      我还为大家准备了一套体系化的架构师学习资料包以及BAT面试资料,供大家参考及学习

      已经将知识体系整理好(源码,笔记,PPT,学习视频)

      在这里插入图片描述

      在这里插入图片描述

      在这里插入图片描述

      id=“deleteRoleIdByUserId”>

      delete from t_user_role where user_id=#{id}

      最后

      我还为大家准备了一套体系化的架构师学习资料包以及BAT面试资料,供大家参考及学习

      已经将知识体系整理好(源码,笔记,PPT,学习视频)

      [外链图片转存中…(img-7KY8b1Uu-1718918150221)]

      [外链图片转存中…(img-NLLvIkFg-1718918150222)]

      [外链图片转存中…(img-ZHm6tdMO-1718918150223)]

    • 26
      点赞
    • 26
      收藏
      觉得还不错? 一键收藏
    • 0
      评论
    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值