zoukankan      html  css  js  c++  java
  • mybatis 使用collection 标签实现级联查询

    1、业务需求 例如查询省市县 分别在不同的三个表中存储 省表,市表,县表

    根据省的id 查询一个对象 包含省市县的内容

    分别写三个VO对象     省Vo(包含市Volist)  市Vo(包含县VoList)   县Vo

    Mpper文件:

    <resultMap id=“shengMap” type=“shengVo”>

      <id column="id" jdbcType="INTEGER" property="id" />
       <result column="sheng_code" jdbcType="VARCHAR" property="shengCode" />

       <result column="sheng_name" jdbcType="VARCHAR" property="shengName" />  

      <collection property="shiVoList"  ofType="shiVo"   select="selectShiByShengID" column="id"/>

    </resultMap>

    <resultMap id=“shiMap” type=“shiVo”>

      <id column="id" jdbcType="INTEGER" property="id" />
      <result column="sheng_id" jdbcType="INTEGER" property="shengId" />
       <result column="shi_code" jdbcType="VARCHAR" property="shiCode" />

       <result column="shi_name" jdbcType="VARCHAR" property="shiName" />  

      <collection property="xianVoList"  ofType="shiVo"   select="selectXianByShiID" column="id"/>

    </resultMap>

    <resultMap id=“xianMap” type=“xianVo”>

      <id column="id" jdbcType="INTEGER" property="id" />
      <result column="shiId" jdbcType="INTEGER" property="shiId" />
       <result column="xian_code" jdbcType="VARCHAR" property="xianCode" />

       <result column="xian_name" jdbcType="VARCHAR" property="xianName" />  

    </resultMap>

    <sql id="sheng_column">
      id, sheng_code,sheng_name
    </sql>

    <sql id="shi_column">
      id, sheng_id,shi_code,shi_name
    </sql>

    <sql id="xian_column">
      id, shi_id,xian_code,xian_name
    </sql>

    <select id="selectShengList"   resultMap="shengMap" ParameterType="int">

      select 

        <include refid="sheng_column"/>

      from  省表

           where id=#{id}

    </select>

    <select id="selectShiByShengID"  resultMap="shiMap" ParameterType="int">

       select 

        <include refid="shi_column"/>

      from  市表

           where sheng_id=#{id}

    </select>

    <select id="selectXianByShiID"  resultMap="shiMap" ParameterType="int">

       select 

        <include refid="xian_column"/>

      from  县表

           where shi_id=#{id}

    </select>

  • 相关阅读:
    mysql触发器
    mysql存储过程
    怎样理解阻塞非阻塞与同步异步的区别?
    常用的排序算法的时间复杂度和空间复杂度
    Struts+Hibernate+Spring面试题合集及答案
    springMVC面试题
    Mybatis面试题合集及答案
    Java基础面试题集(二)
    Java基础面试题集(一)
    Spring----EJB
  • 原文地址:https://www.cnblogs.com/hxd9588/p/15331142.html
Copyright © 2011-2022 走看看