一对多 与 一对一 查询有许多相似之处。 
最主要的区别是 查询结果是list,与之对应的标签为collection.

班级和学生,一个班有多个学生,而每个学生只能属于一个班。 
此时班级编号作为学生表的外码。

学生实体类:

public class Student {

    private int id;
private String name;
}

这时班级类修改为:

public class Classes {

    private int id;
private String name;
private Teacher teacher; **private List<Student> list**;
}

根据班级编号,查询班级信息,以及此班所有学生的信息。 
同样有两种方法: 
第一种:

<select id="getClass" parameterType="int" resultMap="getClassMap">
SELECT * from class c,teacher t,student s WHERE s.class_id=c.c_id and c.c_id=#{id}
</select>
<resultMap type="Classes" id="getClassMap">
<id property="id" column="c_id"/>
<result property="name" column="c_name"/>
<collection property="list" ofType="Student">
<id property="id" column="s_id"/>
<result property="name" column="s_name"/>
</collection>
</resultMap>

第二种:

<select id="getClass2" resultMap="getClassMap2">
SELECT * FROM class WHERE c_id=#{id}
</select> <select id="getStudent" resultType="Student">
SELECT s_id id, s_name name FROM student WHERE class_id=#{id}
</select> <resultMap type="Classes" id="getClassMap2">
<id property="id" column="c_id"/>
<result property="name" column="c_name"/>
<collection property="list" column="c_id" select="getStudent"></collection>
</resultMap>

摘自:https://blog.csdn.net/u010785025/article/details/51089233

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

  1. mybatis一对多关联查询+pagehelper->分页错误

    mybatis一对多关联查询+pagehelper->分页错误. 现象: 网上其他人遇到的类似问题:https://segmentfault.com/q/1010000009692585 解决: ...

  2. MyBatis总结-实现关联表查询

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

  3. 7.mybatis一对多关联查询

    和第5节一对一查询类似,但是不同的是,一对一使用的是association,而一对多使用collection. 实例: 1个班级Class,对应1个老师Teacher,对应多个学生Student 1. ...

  4. 关于mybatis一对多关联时

    一对多关联时注:collection标签,property属性名称,column参数字段, ofType查询返回类型,select查询方法,javaType方法的返回类型

  5. mybatis一对多关联查询——(九)

    1.需求: 查询所有订单信息及订单下的订单明细信息. 订单信息与订单明细为一对多关系. 2.      sql语句 确定主查询表:订单表 确定关联查询表:订单明细表 在一对一查询基础上添加订单明细表关 ...

  6. Mybatis学习——一对多关联表查询

    1.实体类 public class Student { private int id; private String name; } public class Classes { private i ...

  7. MyBatis 一对多关联查询

    sqlxml文件 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC ...

  8. Mybatis学习——一对一关联表查询

    1.SQL语句建表 CREATE TABLE teacher( t_id ) ); CREATE TABLE class( c_id ), teacher_id INT ); ALTER TABLE ...

  9. EF5.x Code First 一对多关联条件查询,Contains,Any,All

    背景 通过多个部门id获取所有用户,部门和用户是多对多. 已知部门id,获取该部门包括该部门下的所有子部门的所有用户. 关系如下: public class Entity:IEntity { publ ...

随机推荐

  1. Vue 小实例 - 组件化 、cli 工程化

    1. 组件化  (父子组件通信: 父 - 子 :props 数组           子 - 父  :  子层触发事件,调用  $emit 触发父层对应自定义事件,可函数处理传参 / $event 获 ...

  2. poj 1543 Perfect Cubes (暴搜)

    Perfect Cubes Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 15302   Accepted: 7936 De ...

  3. passwd 修改用户密码 / chpasswd 批量更新用户密码

    passwd 修改用户密码 1.命令功能 passwd 修改用户密码及密码过期时间等信息. 2.语法格式 passwd  option  username passwd   选项   用户名 选项说明 ...

  4. calculate_gain

    torch.nn.init.calculate_gain(nonlinearity,param=None) 对于给定的非线性函数,返回推荐的增益值.这些值如下所示: relu_gain=nn.init ...

  5. python基础练习题6

    01:求1+2!+3!+....+20!的和 s=0 t=1 for n in range(1,21): t*=n s+=t print('1!+2!+3!+.....+20!=%d'%s) 02:利 ...

  6. DataWorks参数配置

    https://help.aliyun.com/document_detail/30281.html?spm=a2c6h.13066369.0.0.7bef69daI5ajKt

  7. 如何使用hook(非注入dll)

    #include <Windows.h> #include <iostream> using namespace std; HHOOK mouseHook; LRESULT _ ...

  8. Eclipse/MyEclipse超全常用快捷键汇总,绝对实用

    [MyEclipse CI 2019.4.0安装包下载] Eclipse的编辑功能非常强大,掌握了Eclipse快捷键功能,能大大提高开发效率.Eclipse中有如下一些和编辑相关的快捷键. 常用快捷 ...

  9. Hive 中的 LEFT SEMI JOIN 与 JOIN ON

    hive 的 join 类型有好几种,其实都是把 MR 中的几种方式都封装实现了,其中 join on.left semi join 算是里边具有代表性,且使用频率较高的 join 方式. 1.联系 ...

  10. 原生ajax 请求

    什么是ajax AJAX 是一种用于创建快速动态网页的技术. 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新. 这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新, ...