mybatis多对多
2024-09-05 23:37:43
这里我们以用户 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>
最新文章
- python 中使用celery
- 小制作-css+html旋转木马
- 使用opengl 绘制9个点,理解各个参数的含义
- div+css定位position详解
- HDU 2842 (递推+矩阵快速幂)
- linux系统date命令详解
- easyUI学习网站
- python:浅析python 中__name__ = &#39;__main__&#39; 的作用
- jquery cookie 用法
- MAC下编译FFMPEG
- Poj 3695-Rectangles 矩形切割
- Javascript基础学习(3)_对象和数组
- 使用cocoapods管理第三方类库
- JavaScript DES 加密
- MVC json
- ORACLE获取表信息方法
- MOOS通配符订阅
- python第三方库------jieba库(中文分词)
- tensorflow中tf.ConfigProto()用法解释
- 21备忘录模式Memento
热门文章
- .NET的优点(转载)
- [转]Oracle 11g 基于CentOS7静默安装教程(无图形界面,远程安装) --有部份地方有问题
- Linux--shell交互输入与循环语句--06
- 编译安装github上的kafka_exporter项目
- 04机器学习实战之朴素贝叶斯scikit-learn实现
- OGG replicat复制进程的拆分
- Codeforces 1192B 全dfs序 + 线段树
- php $_SERVER 中的 QUERY_STRING和REQUEST_URI
- $_POST 和 php://input 的区别
- Django中如何将javascript中的变量传给位于javascript内的{% url %}中的参数?