• Mybatis多层嵌套查询


    基于权限管理时的用户角色权限处理。

    实体类:

      1.User

      public class User{
    private Integer uid;
    private String username;
    private String password;
    private Set<Role> roles=new HashSet<>();
     2.Role
      public class Role {
    private Integer rid;
    private String rname;
    private Set<Module> modules=new HashSet<>();
     3.Module
      

    Mapper 文件。

     <resultMap id="userMap2" type="com.example.mapper.entity.User">
            <id property="uid" column="uid"/>
            <result property="username" column="username"/>
            <result property="password" column="password"/>
            <collection property="roles" ofType="roleMap" column="uid" select="findRole"></collection>
        </resultMap>
    
        <resultMap id="roleMap" type="com.example.mapper.entity.Role">
            <id property="rid" column="rid"/>
            <result property="rname" column="rname"/>
            <collection property="modules" ofType="com.example.mapper.entity.Module" column="rid" select="findModule">
            </collection>
        </resultMap>
    
          <select id="findUserByUserName" parameterType="java.lang.String" resultMap="userMap2">
              SELECT  * from USER WHERE username=#{username}
          </select>
    
        <select id="findRole" parameterType="java.lang.Integer" resultMap="roleMap">
            SELECT r.* from Role r LEFT  JOIN  user_role ur on ur.rid =r.rid where ur.uid=#{uid}
        </select>
    
        <select id="findModule" parameterType="java.lang.Integer" resultType="com.example.mapper.entity.Module">
            SELECT m.* from module m LEFT  JOIN  module_role mr on mr.mid =m.mid where mr.rid=#{rid}
        </select>
    

      测试结果。

    User{uid=1, username='hlhdidi', password='123', roles=[Role{rid=1, rname='admin',modules=[Module{mid=2, mname='delete'}, Module{mid=3, mname='query'}, Module{mid=4, mname='update'}, Module{mid=1, mname='add'}]}]}

      
  • 相关阅读:
    Vue生命周期,及父子组件生命周期顺序
    使用jquery制作可视化的组织结构
    用Moon.Orm来做分页数据显示
    bash脚本之代码统计
    CSS选择符总结
    css选择符归类
    APP测试与WEB测试的区别
    使用Jmeter 对APP进行压力测试
    Python基础之数据类型
    App测试要点以及Bug分类
  • 原文地址:https://www.cnblogs.com/hnsunlong/p/7195594.html
Copyright © 2020-2023  润新知