查询到的数据
{
"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;
}
}