连表查询
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. JPA 一对多双向映射 结果对象相互迭代 造成堆栈溢出问题方法

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

  2. mybatis一对多双向映射

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

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

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

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

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

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

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

  6. mybatis入门基础(六)----高级映射(一对一,一对多,多对多)

    一:订单商品数据模型 1.数据库执行脚本 创建数据库表代码: CREATE TABLE items ( id INT NOT NULL AUTO_INCREMENT, itemsname ) NOT ...

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

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

  8. 映射一对多双向关联关系 cascade、inverse、属性

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

  9. Hibernate映射一对多双向关联关系及部门关联属性

    一对多双向关联关系:(Dept/Emp的案例) 既可以根据在查找部门时根据部门去找该部门下的所有员工,又能在检索员工时获取某个员工所属的部门. 步骤如下: 1.构建实体类(部门实体类加set员工集合) ...

随机推荐

  1. Android 开发你需要了解的那些事

    本文微信公众号「AndroidTraveler」首发. 背景 最近部门有新入职员工,作为规划技术路线的导师,这边给新员工安排了学习路线. 除了基本的学习路线之外,每次沟通,我都留了一个小问题,让小伙伴 ...

  2. 嗨,你真的懂this吗?

    this关键字是JavaScript中最复杂的机制之一,是一个特别的关键字,被自动定义在所有函数的作用域中,但是相信很多JvaScript开发者并不是非常清楚它究竟指向的是什么.听说你很懂this,是 ...

  3. C++ 编程技巧锦集(一)

    C++刷题精髓在STL编程,还有一些函数.下面我就总结一下本人在刷题过程中,每逢遇见总要百度的内容………………(大概率因为本人刷题太少了) 1. map map<string, int> ...

  4. 20141111-WCF获得Web路径

    在WCF中调用Server.MapPath 获取服务发布目录路径 在WCF中调用Server.MapPath 获取服务发布目录路径 在WCF中想使用Server.Map获取当前服务发布目录的绝对路径. ...

  5. Scala 函数式编程(一) 什么是函数式编程?

    为什么我们需要学习函数式编程?或者说函数式编程有什么优势?这个系列中我会用 scala 给你讲述函数式编程中的优势,以及一些函数式的哲学.不懂 scala 也没关系,scala 和 java 是类似的 ...

  6. React的Context的使用方法简介

    context 定义: Context提供了一种方式,能够让数据在组件树中传递,而不必一级一级手动传递. API : createContext(defaultValue?). 使用方法: 首先要引入 ...

  7. (转)Vix_API 操作 VMware

    对虚拟机(VMware Workstation)进行程序控制,查询了VMware官方网站的一些内容,但调试的时候还是出现很多问题. 刚开始想通过命令行的方式控制虚拟机,但总是存在一些问题,到现在也没搞 ...

  8. Excel催化剂开源第1波-自定义函数的源代码全公开

    Excel催化剂插件从2018年1月1日开始运营,到今天刚好一周年,在过去一年时间里,感谢社区里的许多友人们的关心和鼓励,得以坚持下来,并收获一定的用户量和粉丝数和少量的经济收入回报和个人知名度的提升 ...

  9. C#3.0新增功能07 查询表达式

    连载目录    [已更新最新开发文章,点击查看详细] 查询是什么及其作用是什么 查询是一组指令,描述要从给定数据源(或源)检索的数据以及返回的数据应具有的形状和组织. 查询与它生成的结果不同. 通常情 ...

  10. [leetcode] 147. Insertion Sort List (Medium)

    原题 别人的思路 非常简洁 function ListNode(val) { this.val = val; this.next = null; } /** * @param {ListNode} h ...