MyBatis的集合查询
来源:互联网 发布:爱动体感运动机 知乎 编辑:程序博客网 时间:2024/05/16 03:29
集合(collection)元素用来处理“一对多”的关系,集合元素和联合非常相似,还是上一篇中的数据张三丰有武当七侠,王重阳有全真七子
来看第一种子查询方式:
<resultMap id="teacherResult" type="com.zengyg.myibatis.dto.TeacherInfo"> <id property="teacherId" column="teacher_id" /> <result property="name" column="name" /> <result property="sex" column="sex" /> <collection property="students" column="teacher_id" javaType="ArrayList" ofType="com.zengyg.myibatis.dto.StudentInfo" select="querystudentByTeacherId" > </collection></resultMap><select id="querystudentByTeacherId" parameterType="int" resultType="com.zengyg.myibatis.dto.StudentInfo"> select student_id as studentId ,name ,sex from student where teacher_id = #{teacher_id}</select><select id="queryById" parameterType="int" resultMap="teacherResult"> select teacher_id ,name ,sex from teacher where teacher_id = #{teacherId}</select>
通过子查询querystudentByTeacherId查询学生的列表,这里新增了个“ofType”属性,这个属性用来区分JavaBean(或字段)属性类型和集合包含的类型来说是很重要的,这几javaType=”ArrayList” 表示JavaBean属性类型,ofType=”com.zengyg.myibatis.dto.StudentInfo” 表示ArrayList里面是StudentInfo,column也可以传入多个值,方式同联合,同样子查询也存在N+1的问题,在查询结果会集合时应该慎用
另外一种外链接的方式:
<resultMap id="teacherResultUseJoin" type="com.zengyg.myibatis.dto.TeacherInfo"> <id property="teacherId" column="teacher_id" /> <result property="name" column="name" /> <result property="sex" column="sex" /> <collection property="students" javaType="ArrayList" ofType="com.zengyg.myibatis.dto.StudentInfo" > <id property="studentId" column="student_id" /> <id property="sex" column="sex_s" /> <id property="name" column="name_s" /> <id property="teacherId" column="teacher_id" /> </collection></resultMap><select id="queryTeacherByIdUseJoin" parameterType="int" resultMap="teacherResultUseJoin"> select t.teacher_id ,t.name ,t.sex,student_id,s.name as name_s,s.sex as sex_s from teacher t left join student s on t.teacher_id = s.teacher_id where t.teacher_id = #{teacherId}</select>
比较简单,不做过多解释
以上完整代码地址:https://git.oschina.net/zengyg/J2EEAPIStudy.git
0 0
- MyBatis的集合查询
- Mybatis的集合查询
- MyBatis的collection集合的分布查询
- mybatis集合查询
- Mybatis关联、集合查询
- mybatis in集合查询
- 使用MyBatis(九)一对多的集合的嵌套查询
- mysql+mybatis 集合查询配置
- MyBatis集合查询易错
- mybatis查询对象集合注意事项
- MyBatis根据数组、集合查询
- MyBatis根据数组、集合查询
- mybatis 关联查询 含有集合的嵌套查询 并传多个参数
- MyBatis映射文件(集合数据的添加与获取,条件查询,模糊查询)
- mybatis 映射一对多查询返回集合
- mybatis用集合多层封装查询结果
- mybatis批量查询传集合问题
- mybatis-查询(resultMap,关联集合)-15
- 清华EMBA课程系列思考之十七(1) -- 新企业的孵化与创业投资
- JDK并发容器初步认识
- [SDOI2008]沙拉公主的困惑 线性筛 素数+欧拉
- PopupWindow+ListView并实现点击事件
- Linux内核移植 part3:串口驱动
- MyBatis的集合查询
- 冒泡排序
- c#数据结构之最大子数组问题(分治法)
- eclipse设置背景色为豆沙绿
- 学习Redis从这里开始
- Eclipse 设置编码格式
- 344. Reverse String
- Leetcode 168
- Android监听音量变化