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. A. Nephren gives a riddle

    What are you doing at the end of the world? Are you busy? Will you save us? Nephren is playing a gam ...

  2. 五,ESP8266 TCP服务器多连接(基于Lua脚本语言)

    https://www.cnblogs.com/yangfengwu/p/7524326.html 一些时间去准备朋友的元器件了... 接着写,,争取今天写完所有的文章,,因为答应了朋友下周5之前要做 ...

  3. Table Generator 表格样式生成代码

    <style type="text/css"> .tg {border-collapse:collapse;border-spacing:0;} .tg td{font ...

  4. 大数据入门第二十天——scala入门(二)scala基础02

    一. 类.对象.继承.特质 1.类 Scala的类与Java.C++的类比起来更简洁 定义: package com.jiangbei //在Scala中,类并不用声明为public. //Scala ...

  5. Compensating-Transaction模式

    在应用中,会将一系列相关的操作定义为一个连续的操作,当其中一个或者多个步骤失败的时候,Compensating-Transaction模式会重置(回滚)这个连续的操作.在云应用中,这些需要保证一致性的 ...

  6. LoRa---sx1278的FIFO工作流程和应用注意事项

    单开一篇,介绍sx1278的FIFO工作流程和应用设置,分析下出的一些小问题,毕竟也困扰了我几天.亦或是我比较愚钝.总之,记下来吧! /******************************** ...

  7. jQuery .attr() vs. .prop()

    Property vs. Attribute 在开始正式比较prop()和attr()两个jQuery方法之前,我们有必要先弄清一下Property和Attribute两个单词的意思.在中文里面,它们 ...

  8. C#杂乱知识汇总

    :first-child{margin-top:0!important}.markdown-body>:last-child{margin-bottom:0!important}.markdow ...

  9. java实现基于关键字的文件夹(文件)的搜索、文件夹(文件)的复制、删除

    最近在做一个项目,需要实现这几项功能,上网查了很多资料,自己研究了好几天终于实现了,现在与大家分享一下. 一.JAVA实现文件夹的搜索   在百度搜索N个技术文章,从哪些大牛们共享的资料中终于写出了我 ...

  10. AndroidPN环境建立

    AndroidPN环境 AndroidPN实现了从服务器到android移动平台的文本消息推送.这里先简单说一下androidPN的安装过程. 下载androidpn-client-0.5.0.zip ...