Mybatis中Collection集合标签的使用
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集合标签的使用相关推荐
- mybatis中collection嵌套使用
mybatis中collection嵌套使用 @author 无忧少年 @createTime 2019/10/25 1. 问题 刚完成的项目,突然又改了需求,在为了不大改动原先代码的原则下,得使用m ...
- mybatis中collection中的ofType=“String“时
mybatis中collection中的ofType="String"时 DTO: package com.example.mybatis.entity;import java.u ...
- mybatis中传集合时 报异常 invalid comparison: java.util.Arrays$ArrayList and java.lang.String
mybatis中传集合时 报异常 invalid comparison: java.util.Arrays$ArrayList and java.lang.String 参考文章: (1)mybati ...
- java中集合什么时候有索引,JavaSE中Collection集合框架學習筆記(1)——具有索引的List...
前言:因為最近要重新找工作,Collection(集合)是面試中出現頻率非常高的基礎考察點,所以好好惡補了一番. 復習過程中深感之前的學習不系統,而且不能再像剛畢業那樣死背面試題,例如:String是 ...
- Java中Collection集合常用API - Collection存储自定义类型对象
文章目录 Collection常用API Collection存储自定义类型对象 Collection常用API Collection集合API Collection是单列集合的祖宗接口,因此它的功能 ...
- Mybatis中复杂语句标签的简单初步使用
mybatis简单的CURD就不多说了.现在分析一下Mybatis里面的聚集查询.话不多说,还要工作敲bug! 1. 自己建个稍微复杂点的实体对象:这是继承一个实体类,并加上goods对象list,两 ...
- 技巧:MyBatis 中的trim标签,好用!
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者 | wt_better 来源 | https://blog. ...
- MyBatis 中的trim标签介绍
mybatis的trim标签一般用于去除sql语句中多余的and关键字,逗号,或者给sql语句前拼接 "where"."set"以及"values(& ...
- Mybatis中的常用标签
trim标签 MyBatis的trim标签一般用于去除sql语句中多余的and关键字,逗号,或者给sql语句前拼接 "where"."set"以及"v ...
最新文章
- 在HTML中英文换行问题
- Python学习笔记:Day 12 编写日志列表页
- d3设置line长度_Graph Embedding之LINE算法解读
- 喜庆红色C4D立体电商首焦模板|PSD分层格式,设计师大呼真香!
- 【C语言】C语言小项目—贪吃蛇
- C语言练习题 日期天数转换
- python与审计底稿关系_干货!审计底稿,六大禁忌
- Java 枚举类转换List
- Excel运用: Excel的窗口冻结与拆分
- IAR Fatal error
- 超低功耗CMOS 16Mbit SRAM
- bzoj3168 [Heoi2013]钙铁锌硒维生素(矩阵求逆+匈牙利)
- 三十分钟做一个网页游戏
- 最通俗易懂的理解什么是数据库
- 目标检测的模型haartraining培训
- 接口请求返回的状态码总览
- 小山村里的百寿宴:家家户户共享绿色福祉
- Vivado2016如何改变字体大小
- 基于图神经网络的推荐系统,图神经网络算法分类
- Python调用海康SDK进行车牌识别(动态链接库的方法—不通过swig)