一、Person实体类

 1 public class Person {
2 private Integer personId;
3 private String name;
4 private Integer gender;
5 private String personAddr;
6 private Date birthday;
7 //与订单的关系是一对多
8 private List<Orders> orderList;
9 //与角色是一对多关系
10 private List<Role> roleList;
11 //与身份证是一对一关系
12 private IdCard ic;
13 }

二、mapper映射文件相关配置

 1 <!-- =====================一对多关联查询============================ -->
2 <resultMap type="person" id="selectOrderByPersonIdRm" extends="BaseResultMap">
3 <collection property="orderList" ofType="cn.tx.model1.Orders">
4 <id column="ORDER_ID" property="orderId" jdbcType="INTEGER" />
5 <result column="PERSON_ID" property="personId" jdbcType="INTEGER" />
6 <result column="TOTAL_PRICE" property="totalPrice" jdbcType="REAL" />
7 <result column="ADDR" property="addr" jdbcType="VARCHAR" />
8 </collection>
9 </resultMap>
10 <select id="selectOrderByPersonId" parameterType="int" resultMap="selectOrderByPersonIdRm">
11 SELECT * from person p, orders o where p.PERSON_ID = o.PERSON_ID and p.PERSON_ID = #{personId};
12 </select>
<resultMap type="person" id="selectOrderAndDetailByPersonIdRM" extends="BaseResultMap">
<collection property="orderList" ofType="cn.tx.model1.Orders">
<id column="ORDER_ID" property="orderId" jdbcType="INTEGER" />
<result column="PERSON_ID" property="personId" jdbcType="INTEGER" />
<result column="TOTAL_PRICE" property="totalPrice" jdbcType="REAL" />
<result column="ADDR" property="addr" jdbcType="VARCHAR" />
<collection property="detailList" ofType="cn.tx.model1.OrderDetail">
<id column="DETAIL_ID" property="detailId" jdbcType="INTEGER" />
<result column="ORDER_ID" property="orderId" jdbcType="INTEGER" />
<result column="ITEM_NAME" property="itemName" jdbcType="VARCHAR" />
<result column="PRICE" property="price" jdbcType="REAL" />
<result column="QUANTITY" property="quantity" jdbcType="INTEGER" />
</collection>
</collection>
</resultMap>
<select id="selectOrderAndDetailByPersonId" parameterType="int" resultMap="selectOrderAndDetailByPersonIdRM">
SELECT * from person p, orders o,order_detail od where p.PERSON_ID = o.PERSON_ID and o.ORDER_ID = od.ORDER_ID and p.PERSON_ID = #{personId}
</select>
<resultMap type="person" id="selectPersonAndRoleByPersonIdRM" extends="BaseResultMap">
<collection property="roleList" ofType="cn.tx.model1.Role">
<id column="ROLE_ID" property="roleId" jdbcType="INTEGER" />
<result column="ROLE_NAME" property="roleName" jdbcType="VARCHAR" />
<result column="DESCPRIT" property="descprit" jdbcType="VARCHAR" />
</collection>
</resultMap>
<select id="selectPersonAndRoleByPersonId" parameterType="int" resultMap="selectPersonAndRoleByPersonIdRM">
SELECT * from person p,person_role pr,role r where p.PERSON_ID=pr.PERSON_ID AND pr.ROLE_ID=r.ROLE_ID AND p.PERSON_ID=#{id}
</select>

MyBatis多对一,一对多,多对多,一对多关联查询的更多相关文章

  1. MyBatis学习总结(三)——多表关联查询与动态SQL

    在上一章中我们学习了<MyBatis学习总结(二)——MyBatis核心配置文件与输入输出映射>,这一章主要是介绍一对一关联查询.一对多关联查询与动态SQL等内容. 一.多表关联查询 表与 ...

  2. Mybatis之关联查询

    一.一对一关联 1.1.提出需求 根据班级id查询班级信息(带老师的信息) 1.2.创建表和数据 创建一张教师表和班级表,这里我们假设一个老师只负责教一个班,那么老师和班级之间的关系就是一种一对一的关 ...

  3. Mybatis框架学习总结-表的关联查询

    一对一关联 创建表和数据:创建一张教师表和班级表,这里假设一个老师只负责教一个班,那么老师和班级之间的关系就是一种一对一的关系. CREATE TABLE teacher( t_id INT PRIM ...

  4. MyBatis关联查询、多条件查询

    MyBatis关联查询.多条件查询 1.一对一查询 任务需求; 根据班级的信息查询出教师的相关信息 1.数据库表的设计 班级表: 教师表: 2.实体类的设计 班级表: public class Cla ...

  5. MyBatis关联查询 (association) 时遇到的某些问题/mybatis映射

    先说下问题产生的背景: 最近在做一个用到MyBatis的项目,其中有个业务涉及到关联查询,我是将两个查询分开来写的,即嵌套查询,个人感觉这样更方便重用: 关联的查询使用到了动态sql,在执行查询时就出 ...

  6. mybatis入门_一对多,多对多映射以及整合spring框架

    一.一对多映射. 1.1 一对多映射之根据多的一方关联查询一的一方 示例:查询出具体的订单信息,同时也查询出来订单的用户信息. 引入的订单表如下所示: 框选出来的为具体的外键. 订单的Pojo类如下所 ...

  7. Mybatis(四) 高级映射,一对一,一对多,多对多映射

    天气甚好,怎能不学习? 一.单向和双向 包括一对一,一对多,多对多这三种情况,但是每一种又分为单向和双向,在hibernate中我们就详细解析过这单向和双向是啥意思,在这里,在重复一遍,就拿一对多这种 ...

  8. mybatis实战教程二:多对一关联查询(一对多)

    多对一关联查询 一.数据库关系.article表和user表示多对一的关系 CREATE TABLE `article` ( `id` ) NOT NULL AUTO_INCREMENT, `user ...

  9. 【mybatis深度历险系列】mybatis中的高级映射一对一、一对多、多对多

    学习hibernate的时候,小编已经接触多各种映射,mybatis中映射有到底是如何运转的,今天这篇博文,小编主要来简单的介绍一下mybatis中的高级映射,包括一对一.一对多.多对多,希望多有需要 ...

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

    阅读目录 一:订单商品数据模型 二.一对一查询 三.一对多查询 四.多对多查询 回到顶部 一:订单商品数据模型 1.数据库执行脚本 创建数据库表代码: CREATE TABLE items ( id ...

随机推荐

  1. Spring实战第4版PDF下载含源码

    下载链接 扫描右侧公告中二维码,回复[spring实战]即可获取所有链接. 读者评价 看了一半后在做评论,物流速度挺快,正版行货,只是运输过程有点印记,但是想必大家和你关注内容,spring 4必之3 ...

  2. ThreadLocal是什么?谈谈你对他的理解

    1.ThreadLocal是什么 从名字我们就可以看到ThreadLocal叫做线程变量,意思是ThreadLocal中填充的变量属于当前线程,该变量对其他线程而言是隔离的.ThreadLocal为变 ...

  3. 如何使用JSTL获取并显示数据

    首先在×××controller里查询数据,并绑定,代码如下: /** * 显示所有租借信息 默认进入这个方法 * * @param resp * @param req * @param manage ...

  4. 4.FFMPEG-AVFrame

    在ffmpeg中,解码前的数据结构体为AVPacket(参考:3.AVPacket使用),而解码后的数据为AVFrame(视频的YUV, RGB, 音频的PCM,数据量更大) 1.AVFrame介绍 ...

  5. ckeditor4.0以上使用行间距插件lineheight报错修改

    ①从百度上下载一个 ckeditor 行距包,解压放到ckeditor/plugins目录下. ②在config.js 中添加 config.extraPlugins += (config.extra ...

  6. 记一次奇怪的cookie丢失

    .net给Image控件设置一个空图片路径的时候出现丢失cookie 比如说, img_path.ImageUrl ="../"+  ds.Tables[0].Rows[0][&q ...

  7. 基于Goc的Golang代码VSCode实时染色方案

    近日,Li Yiyang 老师基于Goc做了个VS Code插件,能够直观的看到被执行到的代码,当真充满想象力: 感兴趣的同学可以去goc仓库查看详情. Goc的核心能力就在于能够帮助我们在被测程序运 ...

  8. tomcat在linux服务器启动时报错Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x0000000794500000, 576716800, 0) failed; error='Cannot allocate memory' (errno=12)

    原因是内存不足了 解决办法:1.top命令查看后台进程,看哪些可以关闭 2.ps -ef |grep tomcat看哪些不用的tomcat起着,也可以从这里关 3.加大这个tomcat的内存, 在ca ...

  9. Linux下find与exec的联手干大事

    在Linux下工作,find命令绝对是一个非常高频的命令.我们可以用find命令来找到符合某些关键词的文件,找到某些日期的文件,也可以设定一些正则表达式,找到一系列满足该条件的文件. 但是,如果只有一 ...

  10. [Java并发编程之美]第1章 线程基础 补充知识

    1.2线程创建与运行 创建线程有三种方式: 继承Thread类并重写run方法: 实现Runnable接口的run方法,new Thread时将该类对象作为参数传入: 实现Callable接口的cal ...