mybatis之高级结果映射
2017-02-21 21:27
295 查看
先贴一句官方文档内容
如果世界总是这么简单就好了。
正如官方文档所说:如果一切都是这么简单,那该多好啊,但是实际上,我们面对的是复杂的对象,就是对象里有对象,有列表对象,总之五花八门的对象。这个时候我们期盼这mybatis能帮我们来解决这个问题。
今天,我就遇到了这样的一个问题:
在做基于RBAC权限分配模型中,一共有五张表
sys_permission 记录权限信息,包括权限名称,权限url等
sys_role 记录角色信息,包括角色名和角色id
sys_role_permission 记录角色权限对应关系
sys_user 记录用户表
sys_user_role 记录用户角色对应关系,一个用户可能有多个角色
好的,我在做角色权限的时候,需要这样的一个场景,根据角色id,获取角色的权限列表,然后展示在前台上:
我的思路是:
1,先有mybatis逆向生成pojo,然后包装心的角色类,里面包含权限列表,我们姑且设置为SysRoleCustome
2,然后在mapper.xml里面新增这样的resultmap,如下所示
3,其对应的sql语句为:
这样,我们就可以获取包含list<object>这样的对象了
当然,详细的见解还在官方文档里说明,这里只是抛砖引玉,感叹mybatis的便捷性。
高级结果映射
如果世界总是这么简单就好了。
正如官方文档所说:如果一切都是这么简单,那该多好啊,但是实际上,我们面对的是复杂的对象,就是对象里有对象,有列表对象,总之五花八门的对象。这个时候我们期盼这mybatis能帮我们来解决这个问题。
今天,我就遇到了这样的一个问题:
在做基于RBAC权限分配模型中,一共有五张表
sys_permission 记录权限信息,包括权限名称,权限url等
sys_role 记录角色信息,包括角色名和角色id
sys_role_permission 记录角色权限对应关系
sys_user 记录用户表
sys_user_role 记录用户角色对应关系,一个用户可能有多个角色
好的,我在做角色权限的时候,需要这样的一个场景,根据角色id,获取角色的权限列表,然后展示在前台上:
我的思路是:
1,先有mybatis逆向生成pojo,然后包装心的角色类,里面包含权限列表,我们姑且设置为SysRoleCustome
2,然后在mapper.xml里面新增这样的resultmap,如下所示
<resultMap id="roleCustomeMap" type="com.unisits.zngkpt.common.userprivrman.bojo.SysRoleCustome"> <result property="roleId" column="role_id"></result> <result property="roleName" column="role_name"></result> <result property="available" column="available"></result> <collection property="perList" ofType="com.unisits.zngkpt.common.userprivrman.pojo.SysPermission"> <result property="permissionId" column="permission_id"></result> <result property="permissionName" column="permission_name"></result> </collection> </resultMap>
3,其对应的sql语句为:
<select id="queryAllRoleCustome" resultMap="roleCustomeMap"> select a.role_id,a.role_name,a.available , b.permission_id, c.permission_name from sys_role a, sys_role_permission b, sys_permission c where a.role_id = b.role_id and b.permission_id = c.permission_id </select>
这样,我们就可以获取包含list<object>这样的对象了
当然,详细的见解还在官方文档里说明,这里只是抛砖引玉,感叹mybatis的便捷性。
高级结果映射
相关文章推荐
- mybatis-高级结果映射之一对一(多种方式, 有没提到的你找我)
- Mybatis 高级结果映射 ResultMap Association Collection
- java之路 myBatis重新学习(三)高级结果映射
- MyBatis 入门到精通(三) 高级结果映射
- mybatis高级结果映射
- 框架学习系列 mybatis 第十八篇 高级结果一对一结果映射之resultMap的使用
- Mybatis 高级结果映射 ResultMap Association Collection
- mybatis高级结果映射学习之一对一映射(六)
- Mybatis 高级结果映射 ResultMap Association Collection
- Mybatis 高级结果映射 ResultMap Association Collection
- Mybatis 高级结果映射Association Collection Cache-ref Discriminator Cache
- Mybatis 高级结果映射 ResultMap Association Collection
- mybatis高级结果映射collection
- Mybatis 高级结果映射 ResultMap Association Collection
- Mybatis 高级结果映射 ResultMap Association Collection
- MyBatis 入门到精通(三) 高级结果映射
- mybatis联合查询 之 高级结果映射
- Mybatis 高级结果映射 ResultMap Association Collection
- Mybatis高级结果映射一对一或一对多
- Mybatis 高级结果映射 ResultMap Association Collection