Mybatis关联查询之多对多

多对多

一、entity实体类

public class Student {
private Integer stuid;
private String stuname;
private String stuaddress; //植入一个Teacher集合,代表一名学员可以被多名教员教课
private List<Teacher> teachers; public Integer getStuid() {
return stuid;
} public void setStuid(Integer stuid) {
this.stuid = stuid;
} public String getStuname() {
return stuname;
} public void setStuname(String stuname) {
this.stuname = stuname;
} public String getStuaddress() {
return stuaddress;
} public void setStuaddress(String stuaddress) {
this.stuaddress = stuaddress;
} public List<Teacher> getTeachers() {
return teachers;
} public void setTeachers(List<Teacher> teachers) {
this.teachers = teachers;
}
}
public class Teacher {
private Integer tid;
private String tname; //植入学员集合,代表一名教员授课多名学生
private List<Student> students; public Integer getTid() {
return tid;
} public void setTid(Integer tid) {
this.tid = tid;
} public String getTname() {
return tname;
} public void setTname(String tname) {
this.tname = tname;
} public List<Student> getStudents() {
return students;
} public void setStudents(List<Student> students) {
this.students = students;
}
}

二、dao层

//多对多  查询所有学生信息 以及授课老师
public List<Student> getStudentInfo();

三、dao.xml小配置

<!--多对多-->
<resultMap id="studentAndTeacher" type="com.marketsys.entity.Student">
<id column="stuid" property="stuid"/>
<collection property="teachers" ofType="com.marketsys.entity.Teacher">
<id column="tid" property="tid"/>
</collection>
</resultMap>
<select id="getStudentInfo" resultMap="studentAndTeacher">
select * from student,teacher,stu_t where student.stuid=stu_t.stuid and teacher.tid=stu_t.tid
</select>

四、test测试类


SqlSession sqlSession= MybatisUtil.getSqlSession();
URoleTestDao mapper=sqlSession.getMapper(URoleTestDao.class);
//多对多
@Test
public void test3(){
List<Student> studentInfo = mapper.getStudentInfo();
for (Student stu:studentInfo) {
System.out.println("学生:"+stu.getStuname());
for (Teacher teacher:stu.getTeachers()) {
System.out.print("\t教员:"+teacher.getTname());
}
}
}

最新文章

  1. MySQL常用语句
  2. 上传按钮样式优化 &lt;input type=&quot;file&quot; /&gt;
  3. OSGi 的核心配置、动态化及问题
  4. 低级错误之Oracle客户端添加数据
  5. 05_天气查询_JAX-WS方式_客户端
  6. block没那么难(二):block和变量的内存管理
  7. JavaScript 回车 焦点切换(摘抄)
  8. Windows系统的线程调度与软件中断分发
  9. 在navigationItem中添加搜索栏
  10. jmeter里json path postprocessor的用法
  11. PHP:class const
  12. Hadoop权威指南:数据完整性
  13. redhat Redis的安装和部署
  14. AndroidStudio中各种常见快捷键记录
  15. selenium基础实例学习
  16. 快速学习 javascript
  17. [学习笔记]Javascript采用二进制浮点数和四舍五入的错误
  18. lua的文件管理
  19. snmp简单识记
  20. Anaconda3+python3环境下如何创建python2环境(win+Linux下适用,同一个anaconda下py2/3共存)

热门文章

  1. Zabbix自定义监控项(模板)
  2. diango创建一个app
  3. 选择IT公司的雇主提问
  4. 关于css里决定样式优先级的权重
  5. Laravel 即时应用的一种实现方式
  6. 第11章 UDP:用户数据报协-----读书笔记
  7. go语言的错误处理
  8. Python 从入门到进阶之路(七)
  9. Java操作数据库——使用连接池连接数据库
  10. Oracle数据库之第四篇