连表查询
 select
  id
  resultType
  resultMap
 resultType和resultMap不能同时使用

association 属性  映射到多对一中的“一”方的“复杂类型”属性,例如javabean user对象中嵌套一个复杂类型属性
  property 映射数据列的实体类属性 这里就是role
  javaType 完整java类名或者别名
  resultMap 引用外面的resultMap
 association 子元素
  id 主键id
  result 映射到javabean的某个“简单类型”的属性
   property 映射数据列的实体类属性
   column 数据库表字段或者别名
 collection属性  映射到一对多中的“多”方的“复杂类型”属性,例如集合  role对象中嵌套一个复杂类型属性
  property 映射数据列的实体类属性 这里就是user
  ofType 完整java类名或者别名
  resultMap 引用外面的resultMap

多对一 “一”方
实体类:
public class User {

private Integer id;
 private String userName;
 private String userPassword;
 //创建一个角色对象  作用是查看用户信息同时还要看角色信息
 private Role role;

省略getter和setter方法
}
sql映射文件:
<mapper namespace="com.y2196.dao.UserMapper">
 
  <resultMap type="com.y2196.entity.User" id="user">
   <id property="id" column="id"/>
   <result property="userName" column="userName"/>
   <result property="userPassword" column="userPassword"/>
   <!-- 多对一   “一”方 要使用association来映射-->
   <association property="role" javaType="com.y2196.entity.Role">
    <!-- 当有字段名相同的时候,要使用别名方式来区分 -->
    <id property="id" column="rid"/>
    <result property="roleName" column="roleName"/>
   </association>
  
  </resultMap>
  <!-- select标签   resultType和resultMap不能同时使用 -->
  <select id="findUserList" resultMap="user">
   SELECT u.*,r.id AS rid,r.roleName FROM `user` u INNER JOIN role r ON u.roleId = r.id
  </select>
 </mapper>

一对多 “多”方
 实体类:
 public class Role {

private Integer id;
 private String roleName;
 
 private List<User> userList;
 
 省略getter和setter方法
}
sql映射文件:
<resultMap type="com.y2196.entity.Role" id="role">
 <!-- 当有字段名相同的时候,要使用别名方式来区分 -->
 <id property="id" column="rid"/>
 <result property="roleName" column="roleName"/>
 <collection property="userList" ofType="com.y2196.entity.User" resultMap="user"/>
</resultMap>

<select id="findRoleList" resultMap="role">
 SELECT u.*,r.id AS rid,r.roleName FROM `user` u INNER JOIN role r ON u.roleId = r.id
</select>

mybatis一对多双向映射的更多相关文章

  1. mybatis一对多关联关系映射

    mybatis一对多关联关系映射 一对多关联关系只需要在多的一方引入少的一方的主键作为外键即可.在实体类中就是反过来,在少的一方添加多的一方,声明一个List 属性名 作为少的一方的属性. 用户和订单 ...

  2. JPA 一对多双向映射 结果对象相互迭代 造成堆栈溢出问题方法

    问题: JPA 在双向映射时,会相互包含对方的实例,相互引用,造成递归迭代,堆栈溢出(java.lang.StackOverflowError). 分析: 在后端向前端传递的时候会将数据序列化,转为j ...

  3. mybatis的一对多双向映射

    连表查询 select id resultType resultMap resultType和resultMap不能同时使用 association 属性 映射到多对一中的“一”方的“复杂类型”属性, ...

  4. MyBatis一对多双向关联——MyBatis学习笔记之七

    处理has-one关系需要用到association元素,而处理has many关系则需要用到collection元素.例如本例中,假设一 名教师可同时指导多名学生,下面就来介绍如何使用collect ...

  5. Mybatis 一对多 简单映射配置

    只需在一对多的 “一” Model中定义一个list集合: public class SelectQuestion{ // 主键ID private Integer id; private Strin ...

  6. Hibernate从入门到精通(九)一对多双向关联映射

    上次的博文Hibernate从入门到精通(八)一对多单向关联映射中,我们讲解了一下一对多单向映射的相关内容,这次我们讲解一下一对多双向映射的相关内容. 一对多双向关联映射 一对多双向关联映射,即在一的 ...

  7. Hibernate(九)一对多双向关联映射

    上次的博文Hibernate从入门到精通(八)一对多单向关联映射中,我们讲解了一下一对多单向映射的相关 内容,这次我们讲解一下一对多双向映射的相关内容. 一对多双向关联映射 一对多双向关联映 射,即在 ...

  8. Mybatis框架中实现双向一对多关系映射

    学习过Hibernate框架的伙伴们很容易就能简单的配置各种映射关系(Hibernate框架的映射关系在我的blogs中也有详细的讲解),但是在Mybatis框架中我们又如何去实现 一对多的关系映射呢 ...

  9. 06章 映射一对多双向关联关系、以及cascade、inverse属性

    当类与类之间建立了关联,就可以方便的从一个对象导航到另一个对象.或者通过集合导航到一组对象.例如: 对于给定的Emp对象,如果想获得与它关联的Dept对象,只要调用如下方法 Dept dept=emp ...

随机推荐

  1. websocket实现群聊和单聊(转)

    昨日内容回顾 1.Flask路由 1.endpoint="user" # 反向url地址 2.url_address = url_for("user") 3.m ...

  2. 动态代理模拟实现aop

    AOP实现起来代码相当简单.主要核心是动态代理和反射. 一.接口类: public interface MethodDao { public void sayHello(); } 二.接口实现类: p ...

  3. Spring MVC源码(一) ----- 启动过程与组件初始化

    SpringMVC作为MVC框架近年来被广泛地使用,其与Mybatis和Spring的组合,也成为许多公司开发web的套装.SpringMVC继承了Spring的优点,对业务代码的非侵入性,配置的便捷 ...

  4. Linux 提升逼格之 命令别名 分享

    1, 使用场景 Linux下开发 肯定是日常要用命令行的,命令行里包含了众多的命令和工具,例如: git.shell.以及一众系统命令等. 举个例子,码农最常用的 git add ,如果加上别名 可设 ...

  5. 个人永久性免费-Excel催化剂功能第69波-打造最专业易用的商务图表库,即点即用的高级Excel图表

    Excel很大一块细分领域是图表,数据分析的末端,数据展示环节,精美恰当的图表,能够为数据分析数据结论带来画龙点睛的一笔.Excel催化剂简单内置了图表库,利用已经做好的模板式的图表示例,可快速复制使 ...

  6. hadoop的运行模式

    概述 1)资料查询(官方网址) (1)官方网站: http://hadoop.apache.org/ (2)各个版本归档库地址 https://archive.apache.org/dist/hado ...

  7. php 常用函数总汇

    php 使用命令行函数exec($sql,$result,$status); $sql 命令   $result  返回东西  $status成功与否的状态 例如: php使用命令行去执行数据库备份( ...

  8. windows 下搭建安装 sass

    众所周知,sass 解析需要有 ruby 的支撑,所以, 第一步:点我下载 ruby: 第二步:安装 ruby: 在安装 ruby 过程中需要注意的一点:把 ruby 执行文件添加到 path,勾选这 ...

  9. python UUID

    UUID介绍 UUID是128位的全局唯一标识符,通常由32字节的字符串表示.它可以保证时间和空间的唯一性,也称为GUID,全称为:UUID ―― Universally Unique IDentif ...

  10. iOS 类知乎”分页”效果的实现?

    我们先看张gif图看一下效果(LICEcap录制的有点卡, 凑合看) 好像还是卡, 怼个视频演示链接吧: https://m.weibo.cn/1990517135/4398431764047996 ...