打印本文 打印本文 关闭窗口 关闭窗口
iBATIS SQL Maps(三)
作者:武汉SEO闵涛  文章来源:敏韬网  点击数4731  更新时间:2007/11/14 12:58:29  文章录入:mintao  责任编辑:mintao

看看 iBATIS SQL Maps 是怎样从数据库按照 one-to-many 关系查询数据的:

 

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE sqlMap
    PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN"
    "
http://www.ibatis.com/dtd/sql-map-2.dtd">

<sqlMap>
    <resultMap id="get-autoInfo-result" class="bo.AutoInfo">
        <result property="id" column="auto_id"/>
        <result property="licensePlate" column="license_plate"/>
    </resultMap>

    <resultMap id="get-people-result" class="bo.People">
        <result property="id" column="owner_id"/>
        <result property="name" column="name"/>
        <result property="address" column="address"/>
        <result property="autoInfoList" column="owner_id" select="getAutoInfo"/>
    </resultMap>

  <select id="getPeople" resultMap="get-people-result" parameterClass="bo.People">
       <![CDATA[
       select * from people where owner_id=#id#
        ]]>
  </select>

  <select id="getAutoInfo" resultMap="get-autoInfo-result" parameterClass="int">
       <![CDATA[
       select * from auto_info where owner_no=#id#
        ]]>
  </select>
</sqlMap>

 

resultMap id="get-autoInfo-result" class="bo.AutoInfo"

    resultMap iBATIS SQL Maps 框架中重要组件之一,你也许还记得 resultClass 吧?两者概念基本一致。resultMap 则是可定制 Mapped Statement 返回对象的。可定制表现在:比如我有一张数据表包含10个字段,但我的 POJO 只定义了5个属性,这时,只要取出我关心的字段就行。和 Hibernate 类似,resultMap result 元素定义了 POJO 属性到数据表字段的映射。

需要说明的是 result 元素 select 属性,该属性类似于加载了一个子查询,并自动载入,如果这个子查询包含多条结果,就自动把结果装载进 List 类型。该 result 元素对应 People

[1] [2] [3] [4] [5]  下一页

打印本文 打印本文 关闭窗口 关闭窗口