zoukankan      html  css  js  c++  java
  • 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'}]}]}

      
  • 相关阅读:
    HTML5侧滑聊天面板
    HTML5世界地图
    BZOJ_1042_[HAOI2008]硬币购物_容斥原理+背包
    BZOJ_1342_[Baltic2007]Sound静音问题_单调队列
    BZOJ_2343_[Usaco2011 Open]修剪草坪 _单调队列_DP
    BZOJ_2595_[Wc2008]游览计划_斯坦纳树
    BZOJ_5180_[Baltic2016]Cities_ 斯坦纳树
    BZOJ_4006_[JLOI2015]管道连接_斯坦纳树
    51nod_1412_AVL树的种类_动态规划
    BZOJ_3143_[Hnoi2013]游走_期望DP+高斯消元
  • 原文地址:https://www.cnblogs.com/hnsunlong/p/7195594.html
Copyright © 2011-2022 走看看