MapperAssoDao.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="association.AssoDao"> <!--关联:使用对象关联方法-->
<select id="selectByAsso2" parameterType="String" resultMap="selectByAsso2">
SELECT u.id uid,u.name uname,u.age uage,s.name sname,s.salary ssalary FROM user u, salary s
WHERE u.name = s.name AND u.name = #{name}
</select>
<resultMap type="association.AssoObj" id="selectByAsso2">
<result property="id" column="uid"/>
<result property="name" column="uname"/>
<result property="age" column="uage"/>
<result property="salary.name" column="sname"/>
<result property="salary.salary" column="ssalary"/>
</resultMap> <!--关联:使用association关联方法-->
<select id="selectByAsso3" parameterType="String" resultMap="selectByAsso3">
SELECT u.id uid,u.name uname,u.age uage,s.name sname,s.salary ssalary FROM user u, salary s
WHERE u.name = s.name AND u.name = #{name}
</select>
<resultMap type="association.AssoObj" id="selectByAsso3">
<result property="id" column="uid"/>
<result property="name" column="uname"/>
<result property="age" column="uage"/>
<association property="salary" javaType="bean.Salary">
<id property="name" column="sname"></id>
<id property="salary" column="ssalary"></id>
</association>
</resultMap> </mapper>

TestAsso.java

 package association;

 import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.After;
import org.junit.Before;
import org.junit.Test; import java.io.IOException;
import java.io.InputStream;
import java.util.List; /*
* 关联举例
*
* */
public class TestAsso {
String resource = "mybatis-config-assosciation.xml";
SqlSessionFactory sqlSessionFactory = null;
SqlSession session = null; // 关联:使用对象关联方法
@Test
public void testSelectByAsso2() {
AssoDao dao = session.getMapper(AssoDao.class);
List<AssoObj> assoObjs = dao.selectByAsso2("Tom");
System.out.println("查询到AssoObj:" + assoObjs);
} // 关联:使用association关联方法
@Test
public void testSelectByAsso3() {
AssoDao dao = session.getMapper(AssoDao.class);
List<AssoObj> assoObjs = dao.selectByAsso3("Tom");
System.out.println("查询到AssoObj:" + assoObjs);
} @Before
public void before() {
// System.out.println("Before");
try {
InputStream inputStream = Resources.getResourceAsStream(resource);
// 创建工厂
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
// 创建session对象
session = sqlSessionFactory.openSession(); } catch (IOException e) {
e.printStackTrace();
}
} @After
public void close() {
session.close();
// System.out.println("After");
} }

AssoDao.java

 package association;

 import org.apache.ibatis.annotations.Select;

 import java.util.List;

 public interface AssoDao {
public List selectByAsso2(String name); public List selectByAsso3(String name); }

mybatis之关联(2)的更多相关文章

  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 一对一关联 association 返回空值

    mybatis 一对一关联 association 返回空值 最近学习spring mvc + mybatis开发,看的书是<Spring MVC+Mybatis开发 从入门到精通>,在学 ...

  5. SpringBoot+Mybatis实现关联查询

    SpringBoot+Mybatis实现关联查询 今天学习了下Mybatis的动态查询,然后接着上次的Demo改造了下实现表的关联查询. 话不多说,开始今天的小Demo 首先接着上次的项目 https ...

  6. Java基础-SSM之mybatis一对一关联

    Java基础-SSM之mybatis一对一关联 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.准备测试环境(创建数据库表)  1>.创建husbands和wifes表并建 ...

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

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

  8. Mybatis表关联多对一

    在上章的 一对多 中,我们已经学习如何在 Mybatis 中关联多表,但在实际项目中也是经常使用 多对一 的情况,这些查询是如何处理的呢,在这一节中我们来学习它.多表映射的多对一关系要用到 mybit ...

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

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

  10. MyBatis—实现关联表查询

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

随机推荐

  1. 网页设计之字体和 CSS 调整

    调整 CSS 首先,我们先来看看问题的源头.CSS 的出现曾是技术的一大进步.你可以用一个集中式的样式表来装饰多个网页.如今很多 Web 开发者都会使用 Bootstrap 这样的框架. 这些框架当然 ...

  2. Python2.7-shutil

    shutil 模块,高级文件操作模块,支持文件或文件夹的复制和删除 模块方法: shutil.copyfileobj(fsrc, fdst[, length]):将类文件对象(在python中打开的文 ...

  3. OO第9~11次作业总结

    规格化设计调研 大致发展历史 --> 自给自足的私人化的软件生产方式. --> 落后的软件生产方式无法满足迅速增长的计算机软件需求,软件的开发与维护出现一系列严重问题. --> 正式 ...

  4. R 语言的Dataframe常用操作

    上节我们简单介绍了Dataframe的定义,这节我们具体来看一下Dataframe的操作 首先,数据框的创建函数为 data.frame( ),参考R语言的帮助文档,我们来了解一下data.frame ...

  5. excel的宏与VBA入门(一)——基础概念

    一.概述 "记录宏"其实就是将工作的一系列操作结果录制下来,并命名存储(相当于VB中一个子程序). 宏其实就是VBA写的,但是可以通过录制的方法制作宏,做好的宏你可以查看相应的VB ...

  6. 20155216 Exp2 后门原理与实践

    后门原理与实践 实验内容: 常用后门工具 NC 或 netcat netcat是一个底层工具,进行基本的TCP UDP数据收发.常被与其他工具结合使用,起到后门的作用. Linux: 一般自带netc ...

  7. 20155232《网络对抗》Exp7 网络欺诈防范

    20155232<网络对抗>Exp7 网络欺诈防范 一.实践内容 本实践的目标理解常用网络欺诈背后的原理,以提高防范意识,并提出具体防范方法.具体实践有 (1)简单应用SET工具建立冒名网 ...

  8. 20155317 十六周second 取值

    20155317 十六周second 取值 题目如下图: secondset #define base 0xFFFFC0000 # #define &clock void setsecond( ...

  9. Spring-data-jpa 学习笔记(二)

            通过上一篇笔记的,我们掌握了SpringData的相关概念及简单的用法.但上一篇笔记主要讲的是Dao层接口直接继承Repository接口,然后再自己定义方法.主要阐述了自定义方法时的 ...

  10. 如何取得Oracle并行执行的trace

    如何取得Oracle并行执行的trace: ALTER SESSION SET tracefile_identifier='10046_PROD';ALTER SESSION SET max_dump ...