Mybatis | Mybatis标签collection一对多的使用
Mybatis标签collection一对多的使用
- 一、colleciton 标签
- 二、collection使用方法
- 1. 方法一: 嵌套结果映射
- 2. 方法二: 嵌套select 查询
- 三、 association 一对一
一、colleciton 标签
Mybatis的 collection 是一对多的使用的, 在 resultMap 标签内使用
当一个Bean中有 一个list属性需要关联查询出来的使用就用collection 标签
如下
查询用户结果 需要关联出 角色集合
用户
@Data
public class User {private Integer id;private String name;private List<Role> roles;
}
角色
@Data
public class Role {private Integer id;private Integer userId;private String name;private String type;}
sql
CREATE TABLE `user` (`id` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(255) DEFAULT NULL COMMENT '名称',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4;CREATE TABLE `role` (`id` int(11) NOT NULL AUTO_INCREMENT,`user_id` int(11) NOT NULL COMMENT '用户id',`name` varchar(255) DEFAULT NULL COMMENT '角色名称',`type` varchar(255) DEFAULT NULL COMMENT '角色类型',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4;
二、collection使用方法
1. 方法一: 嵌套结果映射
<!-- 定义resultMap --><resultMap id="UserResultMap" type="User"><result column="id" property="id"/><result column="name" property="name"/><collection ofType="role" property="roles"><result column="role_id" property="id"/><result column="role_name" property="name"/><result column="role_type" property="type"/></collection></resultMap><!--查询语句--><select id="selectUserById" resultMap="UserResultMap">select u.id ,u.name,r.id AS role_id ,r.name AS role_name ,r.type AS role_type FROM user AS u INNER JOIN role AS r ON u.id = r.user_id where u.id = #{id}</select>
2. 方法二: 嵌套select 查询
<!-- 定义resultMap --><resultMap id="UserResultMap" type="User"><result column="id" property="id"/><result column="name" property="name"/><collection ofType="role" property="roles" column="id" select="selectRoleByUserId"/></resultMap><!--查询语句--><select id="selectUserById" resultMap="UserResultMap">select id , name FROM user where id = #{id}</select><!--查询语句--><select id="selectRoleByUserId" resultMap="role">select id , name,type FROM role where user_id = #{userId}</select>
- select=“selectRoleByUserId” 找的是第二个sql语句,如果调用别的xml文件中方法写全路径就可以找到.
- column=“id” 参数id 传多个参数的话就是 {“属性名”=“参数”,“属性名”=“参数”} 这样的.
三、 association 一对一
association 一对一: https://blog.csdn.net/qq825478739/article/details/127357796
Mybatis | Mybatis标签collection一对多的使用相关推荐
- MyBatis级联一对一与一对多
1.概述 在一个人申请某些账号或者权限的时候,比如微信的认证流程. 会让你一步一步按要求输入,比如第一步:点击微信认证,第二步:认证联系人信息填写:最后一步:填写公众号名称.功能介绍.选择运营地区就. ...
- Mybatis | Mybatis标签association一对一的使用
Mybatis标签association一对一的使用 一.association 二.使用方法 1. 方法一: 嵌套结果映射 2. 方法二: 嵌套select 查询 三.colleciton 一对多 ...
- 猿创征文|mybatis 字段与数据库关键字冲突了怎么办、mybatis for 循环查询输出、mybatis常用标签
mybatis 字段与数据库关键字冲突了怎么办 如update join_brand_hot set index = #{top} where id = #{id} 这样明显会因为index与索引关键 ...
- mybatis trim标签_MyBatis学习笔记
MyBatis开发文档: mybatis - MyBatis 3mybatis.org mapper接口开发的四个规范: XxxMapper.xml配置文件的名称命名空间值必须是mapper接口的全 ...
- Mybatis中的collection、association来处理结果映射
前不久的项目时间紧张,为了尽快完成原型开发,写了一段效率相当低的代码. 最近几天闲下来,主动把之前的代码优化了一下:) 标签:Java.Mybatis.MySQL 概况:本地系统从另外一个系统得到实体 ...
- Mybatis中的collection和association一关系
collection 一对多和association的多对一关系 学生和班级的一对多的例子 班级类: package com.glj.pojo;import java.io.Serializable; ...
- MyBatis 常用标签简单总结
MyBatis 常用标签简单总结 if 标签:类似于 Java 中的 if 语句 where标签:根据查询条件是否存在,来决定是否生成 where 字符串 set标签:根据查询条件是否存在,来决定是否 ...
- mybatis foreach标签拼接多字段in ,和union
mybatis for标签 手写肯定是不可能,复制又经常忘记哪里有,记录一下复制方便 (oracle数据库) 批量添加 ,修改 ,拼接(xx,xx)in , union 添加,修改: <fore ...
- Mybatis多对一以及一对多关联映射
前期准备: 建表: CREATE TABLE `teacher` (`id` INT(10) NOT NULL PRIMARY KEY,`name` VARCHAR(30) DEFAULT NULL ...
最新文章
- base64 linux_每个Linux新手都应该记住的10个基本Linux命令
- Nibiru Open Day,OZO 遇见 DigiArtist 国际数字艺术展
- MVP模式在Android中的应用之图片展示选择功能的框架设计
- html from嵌套from
- SegmentFault 巨献 1024 程序猿游戏「红岸的呼唤」第一天任务攻略
- EBS FORM开发问题总结
- 【英语学习】【加州教材】【G4】【科学】Science目录及术语表
- 2017级C语言大作业 - 密室逃生
- linux QT 程序自启动,Qt Windows下开机自动启动自己的程序
- 浙大python判断两个字符串是否为变位词_Python实现对变位词的判断
- python continue和break同时用_Python学习笔记之Break和Continue用法分析
- pajek的net文件格式
- 莫烦python讲得好差_莫烦PYTHON——PyTorch——DQN 代码详解
- 20种在学习编程的同时也可以在线赚钱的方法
- 我们无法设置移动热点_支付宝微信设置了密码,为何超市扫码枪能将钱扫走?多数人不了解...
- 获取国家法定节假日和周末
- h5 上 删除 交互_iH5高级教程:H5交互进阶,擦一擦效果
- 输入方向的流量控制 --ifb
- st公司stm32MCU,cubemx创建工程,Drivers文件夹下内容不可见问题的描述与粗略解决方法
- Notepad++下载安装介绍教程