• 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>

      

      

  • 相关阅读:
    NOI2005 维护数列(splay)
    傻子代码行列式
    Matrix-tree定理 spoj HIGH
    Boruvka算法求最小生成树
    Codeforces 521 E cycling city
    欧拉回路 uoj117
    BZOJ1146: [CTSC2008]网络管理Network
    我的OI生涯番外篇
    主席树+dfs SPOJ BZOJ2588 Count on a tree
    动态主席树 优化版
  • 原文地址:https://www.cnblogs.com/yscec/p/12045239.html
Copyright © 2020-2023  润新知