一,简单的情形

  需求:

    根据用户id获取用户拥有的所有角色,返回的结果为角色集合。

  

  1.接口中增加的方法:

    List<SysRole> selectRolesByUserId(Long userId);

  2.映射文件做出的修改:

    <select id="selectRolesByUserId" resultType="tk.mybatis.simple.model.SysRole">
        SELECT
          r.id,
          r.role_name roleName,
          r.enabled,
          r.create_by createBy,
          r.create_time createTime,
        FROM sys_user u
        INNER JOIN sys_user_role ur on u.id = ur.user_id
        INNER JOIN sys_role r on ur.role_id = r.id
        WHERE u.id = #{userId}
    </select>

二,复杂的情形

  需求:

    以第一中情形为基础,假设查询的结果不仅要版哈sys_role中的信息,还要包括当前用户的部分信息

  方案一:

    在SysRole类中直接添加useName属性,或者继承SysRole,在继承类中添加userName属性

  方案二:

    在SysRole类中添加SysUser类性的属性

    1.接口中增加的方法:

    List<SysRole> selectRolesByUserId(Long userId);

    2.映射文件做出的修改:

    <select id="selectRolesByUserId" resultType="tk.mybatis.simple.model.SysRole">
        SELECT
          r.id,
          r.role_name roleName,
          r.enabled,
          r.create_by createBy,
          r.create_time createTime,
          u.user_name AS "user.userName",
          u.user_email AS "user.userEmail"
        FROM sys_user u
        INNER JOIN sys_user_role ur on u.id = ur.user_id
        INNER JOIN sys_role r on ur.role_id = r.id
        WHERE u.id = #{userId}
    </select>

最新文章

  1. 对于挑战书上的很久之前都看不懂的DP看懂的突破
  2. NYOJ---540奇怪的排序
  3. 【Java】XML解析之DOM4J
  4. WPF应用程序最小化到系统托盘
  5. Virtualbox虚拟Ubuntu共享文件夹设置
  6. iOS10推送必看UNNotificationServiceExtension
  7. PC和单片机通过MODBUS RTU通信
  8. 关于js事件冒泡和时间捕获
  9. 成语接龙(dfs)
  10. Longest Palindromic Substring2015年6月20日
  11. MongoDB备份恢复与导出导入
  12. springboot mybatis redis 二级缓存
  13. JS变量重复声明以及忽略var 声明的问题及其背后的原理
  14. Redis 性能问题的记录
  15. 在 Linux服务器中安装 Python 3.6
  16. BNF 和 ABNF 扩充巴科斯范式 了解
  17. 如何对iPhone进行屏幕录像
  18. PyQt 5的基本功能
  19. 新开篇关于vue
  20. linux c开发: 在程序退出时进行处理

热门文章

  1. win10 uwp 异步转同步
  2. SQL Server 中心订阅模型(多发布单订阅)
  3. 微信小程序把玩(三十七)location API
  4. .NET环境下有关打印页面设置、打印机设置、打印预览对话框的实现
  5. 使用内核对象Mutex可以防止同一个进程运行两次
  6. SQL Server 将某一列的值拼接成字符串
  7. [收录] Highcharts-ng —— AngularJS 的图表扩展
  8. 条款14:在资源管理类中小心copying行为
  9. 设置windows服务依赖项
  10. Centos6 samba服务配置