查询到的数据
{
"name": "admin",
"role": {
"id": 1,
"name": "管理员",
"permissionList": [{
"id": 1,
"name": "总公司"
}, {
"id": 2,
"name": "信息部"
}]
},
"userId": 39
}
1.mapper文件:
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > <!--column:表示数据库中的字段列名;property:表示实体类对应的字段名--> <mapper namespace="com.sqxinxibu.neikanhoutai.dao.UserDao" > <!--用户--> <!--<resultMap id="UserRolePermissionMap" type="UserRolePermission">--> <!--<result property="userId" column="id" />--> <!--<result property="name" column="name" jdbcType="VARCHAR"/>--> <!--<collection property="roleList" column="id" javaType="list" select="selectAllRoles"></collection>--> <!--<collection property="permissionList" column="id" javaType="list" select="selectAllpermissions"></collection>--> <!--</resultMap>--> <resultMap id="UserRolePermissionMap" type="UserRolePermission"> <result property="userId" column="id" /> <result property="name" column="name" jdbcType="VARCHAR"/> <collection property="role" column="id" javaType="com.sqxinxibu.neikanhoutai.entity.Roles" select="selectAllRoles"></collection> </resultMap> <!--权限--> <resultMap id="PermissionMap" type="com.sqxinxibu.neikanhoutai.entity.Permission" > <id column="id" property="id" jdbcType="INTEGER" /> <result column="name" property="name" jdbcType="VARCHAR" /> </resultMap> <!--角色--> <resultMap id="RolesMap" type="com.sqxinxibu.neikanhoutai.entity.Roles" > <id column="id" property="id" jdbcType="INTEGER" /> <result column="name" property="name" jdbcType="VARCHAR" /> <!--权限集合--> <collection property="permissionList" column="id" javaType="list" select="selectAllpermissions"></collection> </resultMap> <!--根据角色id查询权限(先从角色权限关联表查询角色id相等,在查询权限id,根据权限id在权限表里查询权限)--> <select id="selectAllpermissions" resultType="com.sqxinxibu.neikanhoutai.entity.Permission" parameterType="java.lang.Integer"> select id,name from sys_menu where id in (select sys_role_menu.menu_id from sys_role_menu where sys_role_menu.role_id=#{id}) </select> <!--根据用户中的角色查询角色--> <select id="selectAllRoles" resultMap="RolesMap" parameterType="java.lang.Integer"> select id,name from sys_role where id in (select sys_user_role.role_id from sys_user_role where sys_user_role.user_id=#{id}) </select> <select id="chaxunByUserId" resultMap="UserRolePermissionMap" parameterType="java.lang.Integer" > select * from user where id=#{id} </select> </mapper>
2.实体类:
2.1返回的实体类:
//用户返回对象 public class UserRolePermission { private int userId; private String name; private Roles role; public int getUserId() { return userId; } public void setUserId(int userId) { this.userId = userId; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Roles getRole() { return role; } public void setRole(Roles role) { this.role = role; } }
2.2:角色实体类:
//角色 public class Roles { private Integer id; private String name; private List<Permission> permissionList; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public List<Permission> getPermissionList() { return permissionList; } public void setPermissionList(List<Permission> permissionList) { this.permissionList = permissionList; } @Override public String toString() { return "Roles [id=" + id + ", name=" + name + ", permissionList=" + permissionList + "]"; } }
2.3权限实体类:
//权限 public class Permission { private Integer id; private String name; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public String toString() { return "Permission{" + "id=" + id + ", name=" + name + '}'; } }
3.表结构:
3.1用户表:
3.2角色表:
3.3权限表:
3.2用户和角色关联表:
3.5角色和权限关联表:
4.dao层:
public interface UserDao { //根据用户id查询角色和权限信息 UserRolePermission chaxunByUserId(int id); //根据 }
5.service层:
@Service("userService") public class UserServiceImpl implements UserService { @Resource private UserDao userDao; public UserRolePermission chaxunByUserId(int id){ UserRolePermission userRolePermission=userDao.chaxunByUserId(id); System.out.println("查询到的用户信息==="+ JSON.toJSONString(userRolePermission)); return userRolePermission; } }
6.controller层:
@RestController public class IndexController { @Autowired private UserServiceImpl userService; @RequestMapping("/test") public String test(@RequestParam int userid){ System.out.println("用户id==="+userid); UserRolePermission userRolePermission=userService.chaxunByUserId(userid); String json=JSON.toJSONString(userRolePermission); System.out.println("查询返回信息:"+ json); return json; } }