一、数据库结构
二、查询所有数据记录(SQL语句)
SQL语句:
SELECT u.*, r.*, a.* FROM ( ( ( user u INNER JOIN user_role ur ON ur.user_id = u.user_id ) INNER JOIN role r ON r.role_id = ur.role_id ) INNER JOIN role_authority ra ON ra.role_id = r.role_id ) INNER JOIN authority a ON ra.authority_id = a.authority_id
三、详细代码(第一中方式)
1、实体类entity
package cn.lemon.demo.entity; import lombok.Data; import java.io.Serializable; @Data public class AuthorityEntity implements Serializable { private Integer authorityId; private String authorityName; private String authorityDescription; }
package cn.lemon.demo.entity; import lombok.Data; import java.io.Serializable; @Data public class RoleEntity implements Serializable { private Integer roleId; private String roleName; private String roleDescription; }
package cn.lemon.demo.entity; import lombok.Data; import java.io.Serializable; import java.util.Date; import java.util.List; @Data public class UserEntity implements Serializable { private Integer userId; private String userName; private String userSex; private Date userBirthday; private String userAddress; private List<RoleEntity> roleEntityList; private List<AuthorityEntity> authorityEntityList; }
2、数据访问层dao、Mapper
package cn.lemon.demo.dao; import cn.lemon.demo.entity.UserEntity; import org.springframework.stereotype.Repository; import java.util.List; @Repository public interface IUserDao { /** * 查询所有关联的数据 * * @return */ List<UserEntity> selectAllUserRoleAuthority(); }
<?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"> <mapper namespace="cn.lemon.demo.dao.IUserDao"> <select id="selectAllUserRoleAuthority" resultMap="userMap"> SELECT u.*, r.*, a.* FROM ( ( ( user u INNER JOIN user_role ur ON ur.user_id = u.user_id ) INNER JOIN role r ON <span style="color:transparent">来1源gaodai#ma#com搞*代#码1网</span>r.role_id = ur.role_id ) INNER JOIN role_authority ra ON ra.role_id = r.role_id ) INNER JOIN authority a ON ra.authority_id = a.authority_id </select> <resultMap id="userMap" type="cn.lemon.demo.entity.UserEntity"> <id property="userId" column="user_id"/> <result property="userName" column="user_name"/> <result property="userSex" column="user_sex"/> <result property="userBirthday" column="user_birthday"/> <result property="userAddress" column="user_address"/> <collection property="roleEntityList" ofType="cn.lemon.demo.entity.RoleEntity" resultMap="roleMap"/> <collection property="authorityEntityList" ofType="cn.lemon.demo.entity.AuthorityEntity" resultMap="authorityMap"/> </resultMap> <resultMap id="roleMap" type="cn.lemon.demo.entity.RoleEntity"> <id property="roleId" column="role_id"/> <result property="roleName" column="role_name"/> <result property="roleDescription" column="role_description"/> </resultMap> <resultMap id="authorityMap" type="cn.lemon.demo.entity.AuthorityEntity"> <id property="authorityId" column="authority_id"/> <result property="authorityName" column="authority_name"/> <result property="authorityDescription" column="authority_description"/> </resultMap> </mapper>