MyBatis从入门到精通:select较深层次的用法
2024-10-21 11:42:10
一,简单的情形
需求:
根据用户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>
最新文章
- 对于挑战书上的很久之前都看不懂的DP看懂的突破
- NYOJ---540奇怪的排序
- 【Java】XML解析之DOM4J
- WPF应用程序最小化到系统托盘
- Virtualbox虚拟Ubuntu共享文件夹设置
- iOS10推送必看UNNotificationServiceExtension
- PC和单片机通过MODBUS RTU通信
- 关于js事件冒泡和时间捕获
- 成语接龙(dfs)
- Longest Palindromic Substring2015年6月20日
- MongoDB备份恢复与导出导入
- springboot mybatis redis 二级缓存
- JS变量重复声明以及忽略var 声明的问题及其背后的原理
- Redis 性能问题的记录
- 在 Linux服务器中安装 Python 3.6
- BNF 和 ABNF 扩充巴科斯范式 了解
- 如何对iPhone进行屏幕录像
- PyQt 5的基本功能
- 新开篇关于vue
- linux c开发: 在程序退出时进行处理