一、resultMap与resultClass
iBatis常见的返回值参数类型有:resultMap与resultClass
这两种类型的选择可以用两句话说明:
1.当结果集列名和类的属性名完全对应时,可直接使用resultClass来直接指定查询结果类型。
这种很常用,例如,
<typeAlias alias="ibeacon" type="com.s2si.model.Ibeacon"/>
<select id="selectibeaconlist" resultClass="ibeacon" parameterClass="int">
<![CDATA[
select * from t_ibeacon where ibeaconid>#ibeaconid# and isavailable=1
]]>
</select>
2.当查询的结果集合属性名无法对应的时候,可以采用resultMap指定列名与对象属性名之间的对应关系,否则对应不上的属性将为null或者0.
这种也是本文想重点讲述的。
resultMap映射结果的目的就是要将查询的结果集绑定到映射对象的属性上。其实对于这种情况用resultClass也是可以解决的,即将查询结果列用as重命名。
PS,写到前面吧,com.ibatis.sqlmap.client.SqlMapClient.sqlMap.queryForMap(String arg0, Object arg1, String arg2)函数参数说明:
第一个statement,第二个插入入参,第三个返回的Map集合的key。
二、问题描述
一般如果需要用resultClass来作为结果集对应的话,那就必须首先声明对应的类,不过有的时候,我们仅仅需要取其中一个值而已,若再因此而去声明