上一章说了多对一,很多学生被一个老师教,这一章是一个老师教很多学生

目录基本没有变化只是改了配置文件:

2、配置文件:

TeacherMapper接口类:

package com.hdlf.dao;

import com.hdlf.pojo.student;
import com.hdlf.pojo.teacher; import java.util.List; public interface TeacherMapper {
//方式一
teacher getteacher(int tid);
//方式二
teacher getteacher2(int tid); }

teacher实体类:

package com.hdlf.pojo;

import lombok.Data;

import java.util.List;

public class teacher {
private int tid;
private String tname;
//因为需要获取到学生所以在这里加一个List泛型集合
List<student> students; public List<student> getStudents() {
return students;
} public void setStudents(List<student> students) {
this.students = students;
} public teacher() {
} public teacher(int tid, String tname, List<student> students) {
this.tid = tid;
this.tname = tname;
this.students = students;
} public int getTid() {
return tid;
} public void setTid(int tid) {
this.tid = tid;
} public String getTname() {
return tname;
} public void setTname(String tname) {
this.tname = tname;
} @Override
public String toString() {
return "teacher{" +
"tid=" + tid +
", tname='" + tname + '\'' +
", students=" + students +
'}';
}
}

student实体类因为是根据老师查教过多少学生,学生类不用写特别的类:

package com.hdlf.pojo;

public class student {
private int sid;
private String sname;
private int tid; @Override
public String toString() {
return "student{" +
"sid=" + sid +
", sname='" + sname + '\'' +
", tid=" + tid +
'}';
} public int getSid() {
return sid;
} public void setSid(int sid) {
this.sid = sid;
} public String getSname() {
return sname;
} public void setSname(String sname) {
this.sname = sname;
} public int getTid() {
return tid;
} public void setTid(int tid) {
this.tid = tid;
} public student(int sid, String sname, int tid) {
this.sid = sid;
this.sname = sname;
this.tid = tid;
} public student() {
}
}

TeacherMapper.xml配置类:

这个是方式一:

复杂的属性,需要单独处理 对象使用:association

集合使用:collection

javaType 指定属性类型,集合中泛型信息使用ofType获取

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hdlf.dao.TeacherMapper"> <select id="getteacher" resultMap="getstudent">
select t.tid, t.tname ,s.sname,s.sid from student s,teacher t where s.tid = t.tid and t.tid = #{tid};
</select> <resultMap id="getstudent" type="teacher">
<result property="tid" column="tid"></result>
<result property="tname" column="tname"></result> <!--复杂的属性,需要单独处理 对象:association 集合:collection
javaType 指定属性类型
集合中泛型信息使用ofType获取
这个studens就是teacher实体类中的students-->
<collection property="students" ofType="student">
<result property="sid" column="sid"></result>
<result property="sname" column="sname"></result>
</collection> </resultMap>
</mapper>

测试结果:

teacher{tid=0, tname='王老师', students=[student{sid=1, sname='张三', tid=1}, student{sid=2, sname='李四', tid=1}, student{sid=3, sname='王五', tid=1}, student{sid=4, sname='吴六', tid=1}, student{sid=5, sname='赵七', tid=1}]}

方式二个人理解其实都一样:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hdlf.dao.TeacherMapper">
<select id="getteacher2" resultMap="getallteacher">
select * from mybatis.teacher where tid = #{tid}
</select>
<resultMap id="getallteacher" type="teacher">
<collection property="students" select="getallstudent" javaType="ArrayList" ofType="studnet" column="tid"></collection>
</resultMap>
<select id="getallstudent" resultType="student">
select * from mybatis.student;
</select> </mapper>

这个就是一对多的处理,小编还是没有领悟到其中的精髓,希望过几天可以顿悟。

最新文章

  1. 移动端IM系统的协议选型:UDP还是TCP?
  2. 易语言5.6 精简破解版[Ctoo]
  3. JVM的生命周期、体系结构、内存管理和垃圾回收机制
  4. UIView中的坐标转换
  5. nullcon HackIM 2016 -- Programming Question 1
  6. js 函数提升和变量提升
  7. scala言语基础学习七
  8. 找不到方法&quot;Boolean System.Threading.WaitHandle.WaitOne(TimeSpan)&quot;的解决方案
  9. SqlServer中截取字符串
  10. 江中微型统计分析软件V1.0版本完成
  11. Apache Spark2.0正式发布
  12. Week14(12月9日)
  13. Javascript 浏览器探测
  14. hdu_1036(取整和格式控制)
  15. [Swift]LeetCode81. 搜索旋转排序数组 II | Search in Rotated Sorted Array II
  16. 环形链表得golang实现
  17. [Windows] [VS] [C] [取得指针所指内存的十六进制形式字符串]
  18. Python 基础list 增删改查 解析
  19. TZOJ 1513 Farm Tour(最小费用最大流)
  20. POI简易帮助文档系列--读取Excel文件

热门文章

  1. java月利率计算(等额本息贷款)
  2. Python 输入与输出
  3. spring boot加载配置文件的顺序
  4. 思科Catalyst 9K
  5. BUG搬运工:CSCvp31778-3802 apsw_watchdog: WARNING: System memory is running low
  6. java中关于类和对象的一些思考
  7. layer 当前页获取iframe页的DOM元素
  8. [阿里移动推荐算法]比赛_快速入门_4_19_update_仅供参考,思维不要受局限
  9. Java自学-集合框架 ArrayList和HashSet的区别
  10. Mybatis的逆向工程以及Example的实例函数及详解