在上一篇文章中介绍了collection的使用以及java bean,表的结构,今天进行association使用的学习,在多对一的映射关系中,查询到多的一方顺带查询出一的一方是常见的!在此例子中,在查询文章的时候顺带将作者查询出来!

映射文件为:

<?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="article">

    <resultMap  id="myMap" type="article">

        <association column="user" property="user" javaType="user"

            select="selectUser">

        </association>

    </resultMap>

    <select id="selectUser" resultType="user">

        select * from user

        where id=#{id}

    </select>

    <sql id="article_saveWithUser">

        insert into article(name,time,user)

        values(#{name},#{time},#{user.id})

    </sql>

    <sql id="article_saveNoUser">

        insert into article(name,time) values(#{name},#{time})

    </sql>

    <select id="article_selectAll" resultMap="myMap">

        select * from

        article

    </select>

    <insert id="article_save" parameterType="article">

        <if test="user!=null">

            <include refid="article_saveWithUser" />

        </if>

        <if test="user==null">

            <include refid="article_saveNoUser" />

        </if>

    </insert>

</mapper>

测试:

@Test

    public void testSelectAll()

    {

        List<Article> result = service.findAll(null);

        for (Article a : result)

        {

            System.out.println(a);

        }

    }

结果:

Article [id=1, name=firstArticle, time=2013-11-3 0:00:00, user=User [article=null, id=1, name=d]]

Article [id=2, name=secondArticle, time=2013-11-3 0:00:00, user=User [article=null, id=1, name=d]]



级联查询成功!

最新文章

  1. [LeetCode] Count Complete Tree Nodes 求完全二叉树的节点个数
  2. 解决:error: Cannot fetch repo (TypeError: expected string or buffer)
  3. Maven最佳实践:Maven仓库(转)
  4. Android工作学习第5天之TabHost实现菜单栏底部显示
  5. JavaSE复习总结之集合(Collection)
  6. bat自动执行telnet
  7. windows8输入法终极完美修复
  8. BootstrapDialog.show函数底层简化
  9. BZOJ1640: [Usaco2007 Nov]Best Cow Line 队列变换
  10. const和非const函数重载
  11. nginx log format
  12. queue STL
  13. java多线程基本概述(二)——Thread的一些方法
  14. Python爬虫进阶(Scrapy框架爬虫)
  15. Identity Server 4 预备知识 -- OAuth 2.0 简介
  16. 登录RabbitMQ的方法
  17. Windows7的MySQL数据库的安装
  18. Java 1.ExecutorService四种线程池的例子与说明
  19. LeetCode141:Linked List Cycle
  20. C++ STL 常用遍历算法

热门文章

  1. python工业互联网监控项目实战4—python opcua
  2. thinkphp5 --接口实例
  3. 关于virtualbox配置centos7的网络问题
  4. Java算法之 二分搜寻法 ( 搜寻原则的代表)
  5. Kudu,支持快速分析的新型Hadoop存储系统
  6. TreeMap分析(中)
  7. 云时代 • 新契机:2017届中国SaaS产业大会圆满落幕
  8. USACO Training Section 1.3混合牛奶 Mixing Milk
  9. [bzoj2427]P2515 [HAOI2010]软件安装(树上背包)
  10. muduo网络库源码学习————日志滚动