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. 跨域传输信息postMessage

    widnow.postMessage()方法允许安全的跨域传输. Syntax otherWindow.postMessage(message, targetOrigin, [transfer]); ...

  2. Spring MVC 注解开发详解

    @Controller控制器定义 1.Controller是单利模式,被多个线程请求共享,因此设计成无序状态. 2.通过@controller标注即可将class定义为一个controller类.为使 ...

  3. Linux 命令行 Tricks

    区分文件和目录: ls -F ls -F -R:递归显示目录 仅改变文件的修改时间,而不修改文件的内容: touch filename: 使用 file 命令查看文件类型: ASCII text di ...

  4. 使用cygwin注意事项二

    使用cygwin时,一定要区分当前运行的是cygwin下的进程还是windows下的进程,如:使用vim, 假如cygwin下没安装vim, windows下安装了,那么你运行的就是windows下的 ...

  5. BZOJ4936:match (不错的分治)

    给你一个由小写字母组成的字符串s,要你构造一个字典序最小的(认为左括号的字典序比右括号小)合法的括号 序列与这个字符串匹配,字符串和括号序列匹配定义为:首先长度必须相等,其次对于一对匹配的左括号和右括 ...

  6. css td 溢出改为省略号

    <style> .table{ table-layout: fixed; width:100%; } .td{ width:100px; white-space: nowrap; over ...

  7. HDMI 8193 配置

    1, User space:ProjectConfig.mkMTK_HDMI_SUPPORT = yes MTK_MULTIBRIDGE_SUPPORT = yesMTK_INTERNAL_HDMI_ ...

  8. Fire Game

    Description Fat brother and Maze are playing a kind of special (hentai) game on an N*M board (N rows ...

  9. getElementsByName()获取标签时的注意

    var aDiv = document.getElementsByTagName('div');//获取的标签名注意你下面用的是哪一个div的标签名,例如 aDiv[0] 才可以: <!-- 注 ...

  10. Can you answer these queries II

    题意: 给一长度为n的序列,有m组询问,每一组询问给出[l,r]询问区间内的最大去重连续子段和. 解法: 考虑一下简化后的问题:如果题目要求询问查询以$r$为右端点且$l$大于等于给定值的去重连续子段 ...