mybatis多对多

这里我们以用户 user 表和 角色role 表为例,假定一个用户能被分配成多重角色,而一种角色也能分给多个用户,故用户和角色构成多对多的关系

需求:给定角色id,查询这个角色所属的所有用户信息

①、在数据库中建立相应的表

  user 表

  role 表

 两者之间的关联表user_role 

public class User {
    //用户ID
    public int id;
    //用户姓名
    public String username;
    //用户性别
    public String sex;
    //一个用户能被分配多种角色
    public List<Role> roles;
    
    //set,get......
}
public class Role {
	public int id;
	public String name;
	//一种角色包含多个用户
	public List<User> users;

	//set,get......

}

 中间表

public class User_Role {
    private User user;
    private Role role;
    //set,get
}

创建 UserMapper 接口和 UserMapper.xml 文件

UserMapper 接口

public interface UserMapper {
	
	//给定一个角色id,要得到具有这个角色的所有用户信息
	public List<User> getUserByRoleId(int roleId);

}

UserMapper.xml 

<?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="many.to.many.mapper.UserMapper">
   <resultMap type="com.ys.po.User" id="getUserMap">
	<id column="id" property="id"/>
	<result column="username" property="username"/>
	<result column="sex" property="sex"/>
  </resultMap>
  <select id="getUserByRoleId" resultMap="getUserMap"> 
    select * from user_role ur,user u where ur.user_id=u.id and ur.role_id=#{id}
  </select>
</mapper>

  

  

原文地址:https://www.cnblogs.com/yscec/p/12045239.html