Mybatis标签association一对一的使用

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

一、association

Mybatis的 association是一对一的使用的, 在 resultMap 标签内使用
当一个Bean中有 一个Object属性需要关联查询出来的使用就用association标签
如下
查询用户结果 需要关联出 角色


用户

@Data
public class User {private Integer id;private String name;private Role role;
}

角色

@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;

二、使用方法

1. 方法一: 嵌套结果映射

    <!-- 定义resultMap --><resultMap id="UserResultMap" type="User"><result column="id" property="id"/><result column="name" property="name"/><association ofType="role" property="role"><result column="role_id" property="id"/><result column="role_name" property="name"/><result column="role_type" property="type"/></association></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"/><association ofType="role" property="role" 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 传多个参数的话就是 {“属性名”=“参数”,“属性名”=“参数”} 这样的.

三、colleciton 一对多

collection 一对多 : https://blog.csdn.net/qq825478739/article/details/127357819

Mybatis | Mybatis标签association一对一的使用相关推荐

  1. Mybatis xml中配置一对一关系association一对多关系collection

    Mybatis xml中配置一对一关系association&一对多关系collection 今天在配置一对一关系映射以及一对多关系映射的时候,把collection中应该使用的ofType配 ...

  2. mybatis sql标签_这谁顶得住?Mybatis 十八连环问

    来自:开源中国,作者:祖大俊 链接:https://my.oschina.net/zudajun/blog/747682 1.#{}和${}的区别是什么? 答:${}是Properties文件中的变量 ...

  3. mybatis sql标签_【1039期】Mybatis面试18问,你想知道的都在这里了!

    1.#{}和${}的区别是什么? 答:${}是Properties文件中的变量占位符,它可以用于标签属性值和sql内部,属于静态文本替换,比如${driver}会被静态替换为com.mysql.jdb ...

  4. 7. MyBatis多表查询 - 一对一 - 一对多 - 多对多

    7. MyBatis多表查询 - 一对一 - 一对多 - 多对多 前言 在前面的篇章,我们已经熟悉了单表查询,下面我们来看看如何进行 多表查询. 数据准备 create database if not ...

  5. Mybatis | Mybatis标签collection一对多的使用

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

  6. MyBatis resultMap 标签的作用

    目录 MyBatis resultMap 1. 什么时候用到 resultmap 标签 2. 单表查询实体类的属性名与表的列名不对应 a. 实体类 b. 接口 c. 接口对应的 Mapper 文件 d ...

  7. mybatis trim标签_MyBatis学习笔记

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

  8. Mybatis 示例之 Association (2)

    接上篇:Mybatis 示例之 Association 上一篇讲到了association的关联结果查询,这里讲association的关联的嵌套查询,这种方式用起来很容易,和关联结果查询相比缺点就是 ...

  9. 【Mybatis高级映射】一对一映射、一对多映射、多对多映射

    前言 当我们学习heribnate的时候,也就是SSH框架的网上商城的时候,我们就学习过它对应的高级映射,一对一映射,一对多映射,多对多映射.对于SSM的Mybatis来说,肯定也是差不多的.既然开了 ...

最新文章

  1. 对接多种三方的设计模式_死磕设计模式之适配器模式
  2. 论文笔记:Deep Residual Learning
  3. OAuth 2.0(网转)
  4. 人工智能秘史(四):憧憬人机共生的“DARPA梦想家”
  5. mysql group by null_MySQL无GROUP BY直接HAVING返回空的问题分析
  6. linux图形界面装mysql_ubuntu 安装图形界面
  7. 满纸辛酸泪 —— 红楼梦中话
  8. LQ-1600K打印机色带传动故障分析
  9. 目标检测的图像特征提取之(三)Haar特征
  10. 大学生常用的pt网站
  11. PS画虚线的几种方法
  12. 迅捷PDF转换成word转换器
  13. Buct oj 1016
  14. Facebook 的开源静态分析工具Infer
  15. CodeForces - 14E Camels【DP】
  16. 浏览器选择 html,select的最佳预设打造全兼容各浏览器select
  17. 2022年磺化工艺考试练习题及模拟考试
  18. deinterlace 隔行 progressive 逐行 3:2pulldown
  19. 基于java派大星水产商城mp4计算机毕业设计源码+系统+lw文档+mysql数据库+调试部署
  20. SRE(运维)最重要的是什么,看这一篇就够了

热门文章

  1. 国瀚实业|个人家庭理财计划应该怎么做
  2. adc去质器什么意思_LOL:“ADC去质器”成为了赏金猎人的神器
  3. 小米8se与电脑连接_看完小米8SE,再看看小米8,两者差别一目了然
  4. 产品经理常用的工具有那些?
  5. 自学Python爬虫学到什么程度?就可以去找工作了?
  6. 现在当和尚都比做程序员合适
  7. 企鲸客scrm 客户转化功能介绍
  8. pca 累积方差贡献率公式_初识PCA数据降维
  9. 解决 cnpm 不是内部命令的解决办法
  10. Lua中获取字符串长度