mybatis简单的CURD就不用多说了,网上相关博客文档一大堆。分析一下Mybatis里面的collection聚集查询。 
假设一个班级有多名学生为例,通过班级号查询出该班级的信息,和班级里面的所有学生的信息,一般的做法就是通过班级号把班级的信息查询出来,再通过班级ID号把该班级里面的所有学生查询出来,我们不用这种通用的方法

1.班级实体类可以定义为这样:

import java.util.List;public class ClazzEntity {private int clazzID;private String clazzName;private List<StudentEntity> studentList;public int getClassID() {return clazzID;}public int getClazzID() {return clazzID;}public void setClazzID(int clazzID) {this.clazzID = clazzID;}public String getClazzName() {return clazzName;}public void setClazzName(String clazzName) {this.clazzName = clazzName;}public List<StudentEntity> getStudentList() {return studentList;}public void setStudentList(List<StudentEntity> studentList) {this.studentList = studentList;}
}

学生实体类定义:

package com.cn.hnust.pojo;public class StudentEntity {private int stuID;private String stuName;private int stuAge;private String stuAddress;public int getStuID() {return stuID;}public void setStuID(int stuID) {this.stuID = stuID;}public String getStuName() {return stuName;}public void setStuName(String stuName) {this.stuName = stuName;}public int getStuAge() {return stuAge;}public void setStuAge(int stuAge) {this.stuAge = stuAge;}public String getStuAddress() {return stuAddress;}public void setStuAddress(String stuAddress) {this.stuAddress = stuAddress;}
}

插入数据记录如图所示: 
3.查询ClazzEntity中的学生信息列表StudentEntity,通过mybatis中的collection标签来配置,其中,ofType是查询返回的学生信息对应的实体类,select为要执行的查询学生列表的查询语句,mybatis的xml配置文件如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.cn.hnust.dao.InfoManageDao" ><resultMap id="ClazzResultMap" type="com.cn.hnust.pojo.ClazzEntity" ><id column="classID" property="clazzID" jdbcType="INTEGER" /><result column="className" property="clazzName" jdbcType="VARCHAR" /><collection property="studentList" column="classID" javaType="ArrayList" ofType="com.cn.hnust.pojo.StudentEntity" select="getStudentByClassID"/></resultMap><resultMap id="StudentResultMap" type="com.cn.hnust.pojo.StudentEntity">  <id property="stuID" column="stuID" />  <result property="stuName" column="stuName" />  <result property="stuAge" column="stuAge" />  <result property="stuAddress" column="stuAddress" /></resultMap>  <select id="getClassByID" resultMap="ClazzResultMap" parameterType="java.lang.Integer" >select classID,classNamefrom class_twhere classID = #{clazzID}
</select><select id="getStudentByClassID" resultMap="StudentResultMap" parameterType="java.lang.Integer" >select stuID,stuName,stuAge,stuAddress,classIDfrom student_twhere classID = #{clazzID}
</select></mapper>

这样就可以查到一个班级的信息,和班级里面的所有学生信息

Mybatis中Collection集合标签的使用相关推荐

  1. mybatis中collection嵌套使用

    mybatis中collection嵌套使用 @author 无忧少年 @createTime 2019/10/25 1. 问题 刚完成的项目,突然又改了需求,在为了不大改动原先代码的原则下,得使用m ...

  2. mybatis中collection中的ofType=“String“时

    mybatis中collection中的ofType="String"时 DTO: package com.example.mybatis.entity;import java.u ...

  3. mybatis中传集合时 报异常 invalid comparison: java.util.Arrays$ArrayList and java.lang.String

    mybatis中传集合时 报异常 invalid comparison: java.util.Arrays$ArrayList and java.lang.String 参考文章: (1)mybati ...

  4. java中集合什么时候有索引,JavaSE中Collection集合框架學習筆記(1)——具有索引的List...

    前言:因為最近要重新找工作,Collection(集合)是面試中出現頻率非常高的基礎考察點,所以好好惡補了一番. 復習過程中深感之前的學習不系統,而且不能再像剛畢業那樣死背面試題,例如:String是 ...

  5. Java中Collection集合常用API - Collection存储自定义类型对象

    文章目录 Collection常用API Collection存储自定义类型对象 Collection常用API Collection集合API Collection是单列集合的祖宗接口,因此它的功能 ...

  6. Mybatis中复杂语句标签的简单初步使用

    mybatis简单的CURD就不多说了.现在分析一下Mybatis里面的聚集查询.话不多说,还要工作敲bug! 1. 自己建个稍微复杂点的实体对象:这是继承一个实体类,并加上goods对象list,两 ...

  7. 技巧:MyBatis 中的trim标签,好用!

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者 | wt_better 来源 | https://blog. ...

  8. MyBatis 中的trim标签介绍

    mybatis的trim标签一般用于去除sql语句中多余的and关键字,逗号,或者给sql语句前拼接 "where"."set"以及"values(& ...

  9. Mybatis中的常用标签

    trim标签 MyBatis的trim标签一般用于去除sql语句中多余的and关键字,逗号,或者给sql语句前拼接 "where"."set"以及"v ...

最新文章

  1. 在HTML中英文换行问题
  2. Python学习笔记:Day 12 编写日志列表页
  3. d3设置line长度_Graph Embedding之LINE算法解读
  4. 喜庆红色C4D立体电商首焦模板|PSD分层格式,设计师大呼真香!
  5. 【C语言】C语言小项目—贪吃蛇
  6. C语言练习题 日期天数转换
  7. python与审计底稿关系_干货!审计底稿,六大禁忌
  8. Java 枚举类转换List
  9. Excel运用: Excel的窗口冻结与拆分
  10. IAR Fatal error
  11. 超低功耗CMOS 16Mbit SRAM
  12. bzoj3168 [Heoi2013]钙铁锌硒维生素(矩阵求逆+匈牙利)
  13. 三十分钟做一个网页游戏
  14. 最通俗易懂的理解什么是数据库
  15. 目标检测的模型haartraining培训
  16. 接口请求返回的状态码总览
  17. 小山村里的百寿宴:家家户户共享绿色福祉
  18. Vivado2016如何改变字体大小
  19. 基于图神经网络的推荐系统,图神经网络算法分类
  20. Python调用海康SDK进行车牌识别(动态链接库的方法—不通过swig)

热门文章

  1. 黑群晖使用pc端 Drive
  2. C++关键段、原子锁、互斥量及信号量的实现和区别
  3. 卷积神经网络(CNN)网络结构及模型原理介绍
  4. 【命名规则】驼峰命名法
  5. Nginx Sticky的使用及踩过的坑(nginx-sticky-module)
  6. python中search、findall、finditer的区别
  7. QQ卡丁车:腾讯自主研发的联网对战赛车游戏
  8. matlab在概率统计中的应用
  9. 隔直电容大小如何选择
  10. latex参考文献中输入