Mybatis(plus)
package com.xxh.mybatisplustest.pojo;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
* <p>
*
* </p>
*
* @author zhoubin
* @since 2021-05-27
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("t_user")
public class User implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 手机号码
*/
private Integer id;
/**
* 昵称
*/
private String nickname;
/**
* 密码
*/
private String password;
/**
* 盐
*/
private String slat;
/**
* 头像
*/
private String head;
/**
* 注册时间
*/
private Date registerDate;
/**
* 最后一次登录时间
*/
private Date lastLoginDate;
/**
* 登录次数
*/
private Integer loginCount;
/**
* 对应的角色
*/
private List<Role> roleList;
}
package com.xxh.mybatisplustest.pojo;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.io.Serializable;
import java.util.List;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
*
* </p>
*
* @author zhoubin
* @since 2021-05-27
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("t_role")
public class Role implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
private String roleName;
private String roleDesc;
private List<Permission> permissions;
}
```java
package com.xxh.mybatisplustest.pojo;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
/**
* <p>
*
* </p>
*
* @author zhoubin
* @since 2021-05-27
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("t_permission")
public class Permission implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
private String pname;
private String pDesc;
}
xml文件中sql语句
<select id="selectUserRoleByUid" resultMap="userRole">
select c.id,c.nickname,b.role_name,b.role_desc,e.pname,e.p_desc from t_user as c
inner join t_role_user a on c.id=a.uid
inner join t_role b on a.rid=b.id
inner join t_per_role d on b.id=d.rid
inner join t_permission e on e.id=d.pid
where c.id=#{id,jdbcType=INTEGER}
</select>
<resultMap id="userRole" type="com.xxh.mybatisplustest.pojo.User">
<result column="id" property="id" />
<result column="nickname" property="nickname" />
<collection property="roleList" ofType="com.xxh.mybatisplustest.pojo.Role">
<result column="role_name" property="roleName" />
<result column="role_desc" property="roleDesc" />
<collection property="permissions" ofType="com.xxh.mybatisplustest.pojo.Permission">
<result column="pname" property="pname" />
<result column="p_desc" property="pDesc" />
</collection>
</collection>
</resultMap>