1.一对多

collection
<resultMap id="deptsql" type="Dept">
<id column="deptNo" property="deptNo"></id>
<result column="deptName" property="deptName"/>
<collection property="emps" ofType="Emp" select="selectby" column="deptNo"></collection> </resultMap>
<select id="selectby" resultType="Emp">
SELECT *FROM emp WHERE deptNo=#{deptNo}
</select>
<select id="getEmpsByDeptNoS" resultMap="deptsql">
SELECT deptNo,deptName
from dept
WHERE deptNo=#{deptNo}
</select> 测试类
@Test
public void testOneToManys(){
SqlSession session= myBatis.getSqlSession();
IStudentInfoDao dao = session.getMapper(IStudentInfoDao.class);
Dept dept = dao.getEmpsByDeptNoS(5);
System.out.println(dept.getDeptName());
for (Emp emp:dept.getEmps()) {
System.out.println(emp.getEmpName());
}
session.close();
}

 2.多对一

<!--多对一-->
<resultMap id="empMapper" type="Emp">
<id column="empNo" property="empNo"></id>
<result column="empName" property="empName"></result>
<association property="dept" javaType="Dept">
<id column="deptNo" property="deptNo"></id>
<result column="deptName" property="deptName"></result>
</association>
</resultMap>
<select id="getEmpNo" resultMap="empMapper">
select dept.deptNo,deptName,empNo,empName
from dept,emp
where dept.deptNo=emp.deptNo
and empNo=#{empNo}
</select> <!--多条件 多对一-->
<resultMap id="deptsqls" type="Emp">
<id column="empNo" property="empNo"></id>
<result column="empName" property="empName"></result>
<association property="dept" javaType="Dept" select="selectbys" column="deptNo"></association>
</resultMap>
<select id="selectbys" resultType="Dept">
SELECT *FROM dept WHERE deptNo=#{deptNo}
</select>
<select id="getEmpNos" resultMap="deptsqls">
SELECT deptNo,empNo,empName
from emp
WHERE empNo=#{empNo}
</select>

  3.自链接

<!--自链接-->
<resultMap id="getCatery" type="Category">
<id column="cid" property="cid"></id>
<result column="cname" property="cname"></result>
<result column="pid" property="pid"></result>
<collection property="list" ofType="Category" select="getCate" column="cid"></collection>
</resultMap>
<select id="getCate" resultMap="getCatery">
SELECT *FROM category WHERE pid=#{pid}
</select>

  4.多对多

 <resultMap id="sts" type="Teacher">
<id column="tid" property="tid"></id>
<result column="tname" property="tname"></result>
<collection property="stus" ofType="Students">
<id column="sid" property="sid"></id>
<result column="sname" property="sname"></result>
</collection>
</resultMap> <select id="getts" resultMap="sts">
SELECT students.sid,sname,teacher.tid,tname FROM
students,ts,teacher WHERE students.sid=ts.sid
AND teacher.tid=ts.tid
AND teacher.tid=#{tid}
</select> 测试类
//过呢根据老师编号查询对应学生
@Test
public void testtss(){
SqlSession session= myBatis.getSqlSession();
IStudentInfoDao dao = session.getMapper(IStudentInfoDao.class);
Teacher teacher=dao.getts(1);
System.out.println(teacher.getTname());
for (Students cate:teacher.getStus()
) {
System.out.println(cate.getSname()); } session.close();
}

  

myBatis-类型关联的更多相关文章

  1. MyBatis实现关联表查询

    一.一对一关联 1.1.提出需求 根据班级id查询班级信息(带老师的信息) 1.2.创建表和数据 创建一张教师表和班级表,这里我们假设一个老师只负责教一个班,那么老师和班级之间的关系就是一种一对一的关 ...

  2. Mybatis之关联查询

    一.一对一关联 1.1.提出需求 根据班级id查询班级信息(带老师的信息) 1.2.创建表和数据 创建一张教师表和班级表,这里我们假设一个老师只负责教一个班,那么老师和班级之间的关系就是一种一对一的关 ...

  3. MyBatis——实现关联表查询

    原文:http://www.cnblogs.com/xdp-gacl/p/4264440.html 一.一对一关联 1.1.提出需求 根据班级id查询班级信息(带老师的信息) 1.2.创建表和数据 创 ...

  4. Mybatis系列(三):Mybatis实现关联表查询

    原文链接:http://www.cnblogs.com/xdp-gacl/p/4264440.html 一.一对一关联 1.1.提出需求 根据班级id查询班级信息(带老师的信息) 1.2.创建表和数据 ...

  5. Mybatis之关联查询及动态SQL

    前言 实际开发项目中,很少是针对单表操作,基本都会联查多表进行操作,尤其是出一些报表的内容.此时,就可以使用Mybatis的关联查询还有动态SQL.前几篇文章已经介绍过了怎么调用及相关内容,因此这里只 ...

  6. MyBatis—实现关联表查询

    一.一对一关联 1.1.提出需求 根据班级id查询班级信息(带老师的信息) 1.2.创建表和数据 创建一张教师表和班级表,这里我们假设一个老师只负责教一个班,那么老师和班级之间的关系就是一种一对一的关 ...

  7. Mybatis表关联一对多、多对一、多对多

    项目工程结构如下: 1. 搭建MyBatis框架环境 首先需要引入两个包:mybatis.jar 和 sqljdbc42.jar包 若分页需要导入两个包:pagehelper-5.1.0.jar 和 ...

  8. 04—mybatis的关联映射

    mybatis的关联映射一对一一对多多对多 一.一对一(一个人只能有一个身份证号) 1.创建表创建表tb_card CREATE TABLE `tb_card` ( `id` int(11) NOT ...

  9. WebStorm文件类型关联设置

    无意中创造了一个没有扩展名的文件,我选择了错误的文件类型关联.是js类型的,我却选成了文本,Ws每次编辑类型就成了txt文本,这个问题让我很苦恼,以下是我的解决方案. 错选的弹出框如下: 解决方案如下 ...

  10. IoC容器Autofac正篇之类型关联(服务暴露)(七)

    类型关联 类型关联就是将类挂载到接口(一个或多个)上去,以方便外部以统一的方式进行调用(看下例). 一.As关联 我们在进行手动关联时,基本都是使用As进行关联的. class Program { s ...

随机推荐

  1. JavaWeb之动态页面技术JSP/EL/JSTL

    一.JSP技术 1.jsp脚本和注释 jsp脚本: 1)<%java代码%> ----- 内部的java代码翻译到service方法的内部 2)<%=java变量或表达式> - ...

  2. 修改winform安装包写日志文件权限

    1.如果程序有写入文件的功能要添加该文件 并配置该属性 改成这个即可

  3. 转:CURL库在程序中的运用浅析

    CURL库在程序中的运用浅析-nk_ysg-ChinaUnix博客 http://blog.chinaunix.net/uid-22476414-id-3286638.html 这个目录的文章转载fr ...

  4. bzoj2159

    树形dp+第二类斯特林数 又是这种形式,只不过这次不用伯努利数了 直接搞肯定不行,我们化简一下式子,考虑x^n的组合意义,是把n个物品放到x个箱子里的方案数.那么就等于这个i=1->n,sigm ...

  5. CPython里的GIL

    GIL不是Python特性,是CPython解释器特性,因为CPython有垃圾回收机制. GIL 本质是互斥锁,保护解释器安全. 保证线程安全,垃圾回收线程不会和其他线程一起运行. 多个线程不能实现 ...

  6. 3-3Java程序的结构

    这是类的定义 这是主方法的定义 类里面包含一个主方法,或者是主方法嵌套到我们的类里面 大括号要特别注意,通过大括号我们可以看到类和主方法的包含关系 class后面一定是跟的类的名字

  7. Java 类加载器的作用

    深入探讨 Java 类加载器 成 富, 软件工程师, IBM 中国软件开发中心 成富任职于 IBM 中国软件开发中心,目前在 Lotus 部门从事 IBM Mashup Center 的开发工作.他毕 ...

  8. Metatable In Lua 浅尝辄止

    http://www.cnblogs.com/simonw/archive/2007/01/17/622032.html 什么是Metatable Lua中Metatable这个概念, 国内将他翻译为 ...

  9. C#操作句柄

    1.直接上例子吧:收集系统信息msinfo32时,会有一个弹窗,现在要隐藏该弹窗,首先看没有通过句柄隐藏弹窗的现象 2.收集系统信息导入到一个位置 代码: Process[] msinfo32proc ...

  10. SourceTree配置BeyondCompare代码冲突解决工具

    一.工具准备:SourceTree这个你得有.然后下载BeyondCompare(破解教程) 二.配置环境:SourceTree->工具->选项->比较,外部对比工具和合并工具都选择 ...