示例【通过班级查询老师信息】

创建t_classes

创建t_classessTeacher

创建t_teacher

创建Classes

package com.po;
import java.util.List;
public class Classes {private Integer cid;private String cname;private List<Teacher> teachers;public Integer getCid() {return cid;}public void setCid(Integer cid) {this.cid = cid;}public String getCname() {return cname;}public void setCname(String cname) {this.cname = cname;}public List<Teacher> getTeachers() {return teachers;}public void setTeachers(List<Teacher> teachers) {this.teachers = teachers;}@Overridepublic String toString() {return "Classes [cid=" + cid + ", cname=" + cname + ", teachers=" + teachers + "]";}
}

创建Teacher

package com.po;
import java.util.List;
public class Teacher {private Integer tid;private String tname;private List<Classes> classes;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<Classes> getClasses() {return classes;}public void setClasses(List<Classes> classes) {this.classes = classes;}@Overridepublic String toString() {return "Teacher [tid=" + tid + ", tname=" + tname + "]";}
}

创建ClassesMapper.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.mapper.ClassesMapper"><!-- 自定义结果映射 --><resultMap type="com.po.Classes" id="ClassesWithTeacherResult"><id property="cid" column="cid"/><result property="cname" column="cname"/><!-- 多表关联映射 --><collection property="teachers" ofType="com.po.Teacher"><id property="tid" column="tid"/><result property="tname" column="tname"/></collection></resultMap><select id="findClassesWithTeacher" parameterType="Integer" resultMap="ClassesWithTeacherResult">select * from t_classes c,t_teacher t,t_classessTeacher ctwhere ct.cid=c.cidand ct.tid=t.tidand c.cid=#{cid}</select>
</mapper>

配置mybatis-config.xml

<!-- 配置Mapper的位置 --><mappers><mapper resource="com/mapper/ClassesMapper.xml"/>          </mappers>

创建ClassesDao

package com.dao;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
import com.factory.SessionFactory;
import com.po.Classes;
public class ClassesDao {private SqlSession session=SessionFactory.getSqlSession();@Testpublic void findClassesWithTeacher() {Classes classess=session.selectOne("com.mapper.ClassesMapper.findClassesWithTeacher", 1);System.out.println(classess);}
}

执行 findClassesWithTeacher()方法

MyBatis 多对多关联映射相关推荐

  1. mybatis手写多对多关联映射

    mybatis手写多对多关联映射 1.一对一关联查询 1.1resultType实现 1.2resultMap实现 2.一对多关联查询 3.多对多关联查询 4.resultType与resultMap ...

  2. NHibernate从入门到精通系列(7)——多对一关联映射

    内容摘要 多对一关联映射概括 多对一关联映射插入和查询 多对一关联映配置介绍 一.多对一关联映射概括 关联关系是实体类与实体类之间的结构关系,分别为"多对一"."一对一& ...

  3. hibernate之多对多关联映射

    hibernate之多对多关联映射 转载于:https://www.cnblogs.com/liuyang-1037/archive/2009/06/06/1497589.html

  4. 步步为营Hibernate全攻略(三)剪不断理还乱之:多对多关联映射

    hibernate多对多关联映射同样可以分为单向的关联映射和双向的关联映射,与一对多关联映射相比,双方之间的关系将不再由其中多的一方维护而是变成了由第三张表来维护.第三张表的出现不仅减少了两张表中的数 ...

  5. MyBatis多对多关联查询示例——MyBatis学习笔记之十八

    MyBatis系列的上一篇博客发表时,笑笑还没有出生.转眼间八个月过去了,他已经是个大宝宝了.这么长时间未更新MyBatis系列的博客,想来真是罪过.不过有了宝宝之后,的确会分散自己很大一部分精力. ...

  6. 多对多关联映射(双向)

    关联映射方面的最后一篇了,我觉得映射文件的编写是使用hibernate的基础,而关联映射又是基础的基础,所以这方面分的细一些,罗嗦一些,说明白就好,呵呵. 多对多关联(双向),相对单向,在实体上就是一 ...

  7. JAVA两个表相关联_关于Java:如何将多对多关联映射到映射到两个不同表的类?...

    我有一个凭证-POJO映射到两个表. 第一个映射分配一个实体名称" voucherA",并将POJO映射到TableA. 第二个映射使用" voucherB"作 ...

  8. mybatis多表关联映射

    数据准备: 在MySQL数据库中,创建一个名为mybatis的数据库,在此数据库中创建一个student表,course表以及sc表,同时预先插入几条数据.如图所示(下图只是表样例,具体数据记录自己编 ...

  9. 【Hibernate框架】关联映射(多对多关联映射)

    按着我们的总结行进计划,接下来,就是有关于多对多映射的总结了. 我们来举个例子啊,很长时间以来,房价暴涨不落,但是还有很多人拥有很多套房产,假如说,一个富豪拥有九套房产,家里人么准去住哪一套,我们就以 ...

最新文章

  1. 算法基础知识科普:8大搜索算法之红黑树(下)
  2. python和pycharm之间的关系_浅析python,PyCharm,Anaconda三者之间的关系
  3. android模拟手指滑动,Android Accessibility 模拟界面滑动
  4. Python学习笔记:SMTP服务器
  5. Elastic job,任务状态:分片待调整
  6. netcore 编译 html,Asp.Net Core中的@ Html.Action
  7. 为什么c++要“在头文件中声明,在源文件中定义”?
  8. PostgreSQL数据库安装Version10.5
  9. 【Elasticsearch】 Elasticsearch对外提供分词服务实践
  10. 2020年,5 种 将死的编程语言!
  11. linux 远程挂载摄像头_linux实现HUB分接两个摄像头读取视频
  12. docker安装mysql以及设置navicat远程访问
  13. C#之ActionBlock异步关闭死锁
  14. 2018-12-20 第二章Java 预习作业
  15. 创造新世界--全国模拟(二)
  16. 20. 自定义配置文件
  17. Ubuntu下键盘测试软件
  18. 不怕新歌有多嗨,就怕老歌带DJ,Python批量对DJ歌曲进行下载
  19. Android常用RGB值以及中英文名称
  20. latex怎么看论文字数_如何使用LaTeX完成一篇论文的基本排版

热门文章

  1. lisp注册注册机源码_[求助]请教在lisp中加入注册码
  2. AGV导航中的最短路径算法比较
  3. eclipse位数、jdk位数和电脑位数要一样
  4. Selenium学习 - 简介
  5. 大话设计模式 第二章 策略模式购物车价格查询
  6. python的PIL库部分模块函数
  7. redisson + CacheManager缓存管理
  8. 【离散数学】编程练习:求关系的传递闭包
  9. c语言检测网络连接,C++ 网络连通性检测的实现方法
  10. Python调用cmd