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一对多的使用相关推荐

  1. MyBatis级联一对一与一对多

    1.概述 在一个人申请某些账号或者权限的时候,比如微信的认证流程. 会让你一步一步按要求输入,比如第一步:点击微信认证,第二步:认证联系人信息填写:最后一步:填写公众号名称.功能介绍.选择运营地区就. ...

  2. Mybatis | Mybatis标签association一对一的使用

    Mybatis标签association一对一的使用 一.association 二.使用方法 1. 方法一: 嵌套结果映射 2. 方法二: 嵌套select 查询 三.colleciton 一对多 ...

  3. 猿创征文|mybatis 字段与数据库关键字冲突了怎么办、mybatis for 循环查询输出、mybatis常用标签

    mybatis 字段与数据库关键字冲突了怎么办 如update join_brand_hot set index = #{top} where id = #{id} 这样明显会因为index与索引关键 ...

  4. mybatis trim标签_MyBatis学习笔记

    MyBatis开发文档: mybatis - MyBatis 3​mybatis.org mapper接口开发的四个规范: XxxMapper.xml配置文件的名称命名空间值必须是mapper接口的全 ...

  5. Mybatis中的collection、association来处理结果映射

    前不久的项目时间紧张,为了尽快完成原型开发,写了一段效率相当低的代码. 最近几天闲下来,主动把之前的代码优化了一下:) 标签:Java.Mybatis.MySQL 概况:本地系统从另外一个系统得到实体 ...

  6. Mybatis中的collection和association一关系

    collection 一对多和association的多对一关系 学生和班级的一对多的例子 班级类: package com.glj.pojo;import java.io.Serializable; ...

  7. MyBatis 常用标签简单总结

    MyBatis 常用标签简单总结 if 标签:类似于 Java 中的 if 语句 where标签:根据查询条件是否存在,来决定是否生成 where 字符串 set标签:根据查询条件是否存在,来决定是否 ...

  8. mybatis foreach标签拼接多字段in ,和union

    mybatis for标签 手写肯定是不可能,复制又经常忘记哪里有,记录一下复制方便 (oracle数据库) 批量添加 ,修改 ,拼接(xx,xx)in , union 添加,修改: <fore ...

  9. Mybatis多对一以及一对多关联映射

    前期准备: 建表: CREATE TABLE `teacher` (`id` INT(10) NOT NULL PRIMARY KEY,`name` VARCHAR(30) DEFAULT NULL ...

最新文章

  1. base64 linux_每个Linux新手都应该记住的10个基本Linux命令
  2. Nibiru Open Day,OZO 遇见 DigiArtist 国际数字艺术展
  3. MVP模式在Android中的应用之图片展示选择功能的框架设计
  4. html from嵌套from
  5. SegmentFault 巨献 1024 程序猿游戏「红岸的呼唤」第一天任务攻略
  6. EBS FORM开发问题总结
  7. 【英语学习】【加州教材】【G4】【科学】Science目录及术语表
  8. 2017级C语言大作业 - 密室逃生
  9. linux QT 程序自启动,Qt Windows下开机自动启动自己的程序
  10. 浙大python判断两个字符串是否为变位词_Python实现对变位词的判断
  11. python continue和break同时用_Python学习笔记之Break和Continue用法分析
  12. pajek的net文件格式
  13. 莫烦python讲得好差_莫烦PYTHON——PyTorch——DQN 代码详解
  14. 20种在学习编程的同时也可以在线赚钱的方法
  15. 我们无法设置移动热点_支付宝微信设置了密码,为何超市扫码枪能将钱扫走?多数人不了解...
  16. 获取国家法定节假日和周末
  17. h5 上 删除 交互_iH5高级教程:H5交互进阶,擦一擦效果
  18. 输入方向的流量控制 --ifb
  19. st公司stm32MCU,cubemx创建工程,Drivers文件夹下内容不可见问题的描述与粗略解决方法
  20. Notepad++下载安装介绍教程

热门文章

  1. 七段S形速度曲线轨迹规划
  2. 铺管家教育:拼多多如何处理类目问题
  3. Windows按键映射、替换、禁用
  4. 阿里巴巴python教程_我敢打赌,这份python入门教程看了绝对有用
  5. 求一组数中的最大值、最小值及总和
  6. window 系统里 chrome 浏览器一些实用的调试技巧
  7. unity番外学习笔记-canvas在3d里的设置以及3d物体之间的碰撞
  8. pc端用微信扫一扫实现微信第三方登陆
  9. 谁都可以做-几分钱打造完美DIY面膜 - 生活至上,美容至尚!
  10. 手机端程序猿表白神器html,程序员表白神器