0
点赞
收藏
分享

微信扫一扫

ssm用户角色CURD

肉肉七七 2022-04-01 阅读 45
spring

ssm用户角色CURD

一、配置环境

  1. 配置jdbc.properties

  2. 配置log4j.properties

  3. 编写映射文件(XxxxMapper.xml)

    1. 指定namespace
    2. 给实体起别名
    3. 编写sql语句
  4. 编写核心文件(sqlMapconfig)

    1. 用定义别名
    2. 配置分页助手插件
  5. 配置spring(applicationContext.xml)

    1. 组件扫描 service和mapper
    2. 加载properties文件
    3. 配置数据源信息
    4. 配置sessionFactory
      1. 加载数据源信息
      2. 加载mybatis核心文件
    5. 扫描mapper所在包 为mapper创建实现类
    6. 声明事务控制
      1. 平台事务管理器
      2. 配置事务增强
      3. 事务的aop织入
  6. 配置spring-mvc.xml

    1. 组件扫描 controller
    2. 配置 mvc注解驱动[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FZ4Pbtc7-1648804607203)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20220401111629778.png)]
    3. 配置内部资源视图解析器
    4. 开放静态资源访问权限
  7. 配置web.xml

    1. spring监听器
    2. springmvc的前端控制器
    3. 乱码过滤器

二、查询(user表)

获取参数:当前页数、显示条数

先查询所有用户的信息,并且把role的信息存入到用户实体中,接收的参数为userList

然后通过分页助手简单查询用户的信息,但role为空,接收的参数为allUser

最后userList中的role信息,一一对应的赋给allUser;

返回 PageInfo;

  1. UserController层
    @ResponseBody
    @RequestMapping("/findAll")
    public  PageInfo<User> findAll(Integer currentPage,Integer pageSize){
        if (currentPage==null){
            currentPage=1;
        }
        if (pageSize==null){
            pageSize=3;
        }
        List<User> userList = userService.findAllByPage();
        System.out.println(userList.toString());
        PageHelper.startPage(currentPage,pageSize);
        List<User> allUser = userService.findAllUser();
        for (int i = 0; i <userList.size() ; i++) {
            for (int j = 0; j < allUser.size(); j++) {
                if (allUser.get(j).getId()==userList.get(i).getId()){
                    allUser.get(j).setRoles(userList.get(i).getRoles());
                }
            }
        }
        PageInfo<User> pageInfo=new PageInfo<User>(allUser);
        return pageInfo;
    }
  1. UserMapper.xml
    <resultMap id="userMap" type="user">
        <id column="id" property="id"></id>
        <result column="userName" property="username"></result>
        <result column="email" property="email"></result>
        <result column="password" property="password"></result>
        <result column="phoneNum" property="phoneNum"></result>
        <collection property="roles" ofType="role">
            <id column="roleId" property="id"></id>
            <result column="roleName" property="roleName"></result>
            <result column="roleDesc" property="roleDesc"></result>
        </collection>
    </resultMap>
    <select id="findAllByPage" resultMap="userMap">
        SELECT * FROM sys_user su left  join  (sys_role sr,sys_user_role sur) on su.id=sur.userId AND sur.roleId=sr.id ORDER BY su.id
    </select>
     <select id="findAllUser" resultType="user">
        select * from sys_user
    </select>

三、插入

获取用户信息和该用户的角色;

先添加用户;

查询该用户的ID;

添加该用户和角色的关系;

重定向user-list.html地址;

  1. Controller层
  @RequestMapping("/save")
    public String save(User user,Long[] roleIds){
        //添加用户
        userService.saveUser(user);
        //查询新用户id
        User new_user = userService.findOneByUnameAndPwd(user);
        Long userId = new_user.getId();
        //添加用户和角色关系
        userService.saveUserAndRole(userId,roleIds);
        return "redirect:/pages/user-list.html";
    }
  1. UserMapper.xml
    <insert id="saveUser" parameterType="user">
        insert into sys_user(username,email,password,phoneNum) values (#{username},#{email},#{password},#{phoneNum})
    </insert>
    <select id="findOneByUnameAndPwd" parameterType="user" resultType="user">
        select * from sys_user where username=#{username} and password=#{password}
    </select>
    <insert id="saveUserAndRole" parameterType="Long">
        insert into sys_user_role(userId,roleId) values
        <foreach collection="roleIds" item="roleIds" separator="," index="index" >
            (#{userId},#{roleIds})
        </foreach>
    </insert>

四、修改

获取用户信息和该用户的角色;

修改用户表;

删除用户角色关联表;

添加用户角色关联表;

重定向user-list.html地址;

  1. Controller层
 @RequestMapping("/update")
    public String update(User user,Long[] roleIds){
        //修改用户表
        userService.updateUser(user);
        //删除用户角色关联表
        userService.deleteRoleIds(user);
        //添加用户角色关联表
        Long userId = user.getId();
        userService.saveUserAndRole(userId,roleIds);
        return "redirect:/pages/user-list.html";
    }
  1. UserMapper.xml
	<update id="updateUser" parameterType="user">
        update sys_user set username=#{username} , email=#{email} ,password=#{password} ,phoneNum=#{phoneNum} where id=#{id}
    </update>
    <delete id="deleteRoleIds" parameterType="user">
        delete from sys_user_role where userId=#{id}
    </delete>
    <insert id="saveUserAndRole" parameterType="Long">
        insert into sys_user_role(userId,roleId) values
        <foreach collection="roleIds" item="roleIds" separator="," index="index" >
            (#{userId},#{roleIds})
        </foreach>
    </insert>

五、删除

获取id;

先删除用户角色关联表;

再删除用户;

  1. controller层
    @RequestMapping(value = "/delete",method = RequestMethod.GET)
    public String delete(@RequestParam Long id){
        //必须先删关联的表再删用户表
        //删除用户角色关联表
        User user = new User();
        user.setId(id);
        System.out.println(id);
        userService.deleteRoleIds(user);
        //删除用户表
        userService.deleteUser(id);

        return "redirect:/pages/user-list.html";
    }
  1. UserMapper.xml
    <delete id="deleteRoleIds" parameterType="user">
        delete from sys_user_role where userId=#{id}
    </delete>
    <delete id="deleteUser" parameterType="Long">
        delete from sys_user where id=#{id}
    </delete>

deleteRoleIds" parameterType=“user”>
delete from sys_user_role where userId=#{id}


delete from sys_user where id=#{id}




举报

相关推荐

0 条评论