在ibatis中使用XML
1)XML参数
<select id="getByXmlId" resultClass="Account" parameterClass="xml">
select
accountId,
username,
password,
firstname,
lastname,
address1,
address2
from
Account
where accountId = #accountId#
</select>
String parameter = "<parameter><accountId>3</accountId></parameter>";
Account account = sqlMapClient.queryForObject(
"Account.getXmlId"
,parameter
);
2)DOM参数
暂时不讲解,不推荐写,别计较麻烦
3)XML结果
<select id="getByIdValue<span style="font-family: Arial, Helvetica, sans-serif;">Xml</span>" resultClass="xml" xmlResultName="account">
select
accountId,
username,
password,
from
Account
where accountId = #accountId#
</select>
结果:
<?xml version="1.0" encoding="UTF-8" ?>
<account>
<accountid>1</accountid>
<username>lmeadors</username>
<password>blah</password>
</account>
也可以返回多条记录,详解见《ibatis实战》P109
4)复杂集合
<sqlMap namspace="Ch6">
<resultMap id="resultAccountInfoMap" class="org.apache.mapper2.examples.bean.AccountInfo">
<result property ="account.accountId"
column="accountId"/>
<result property ="orderList"
select="Ch6.getOrderInfoList"
column="accountId"
/>
</resultMap>
<select id="getOrderInfoList" resultMap="ResultOrderInfoMap">
select orderId from orders where accountId = #value#
</select>
</sqlMap>
5)映射继承
<resultMap id="document" class="testdomai.Document">
<result property="id" column="DOCUMENT_ID"/>
<result property="title" column="TITLE"/>
<result property="type" column="TYPE"/>
<strong><discriminator column="TYPE" javaType="string">
<subMap value="Book" resultMap="book"/>
<subMap value="Newspaper" resultMap="news"/>
</discriminator ></strong>
</resultMap>
<resultMap id="book" class="testdomai.Book" extends="document">
<result property="pages" column="DOCUMENT PAGENUMBER"/>
</resultMap>