ibatis 在只想查询部分字段时,resultMap如何配???

chongan_wang 2009-11-10 12:37:12
<resultMap id="cardSortResult" class="com.wulidou.bean.dictionary.transfer.CardSort" >
<!--
WARNING - This element is automatically generated by Abator for iBATIS, do not modify.
This element was generated on Wed Nov 04 15:33:25 CST 2009.
-->
<result column="id" property="id" jdbcType="INTEGER" />
<result column="named" property="named" jdbcType="VARCHAR" />
<result column="rank" property="rank" jdbcType="INTEGER" />
<result column="isShow" property="isShow" jdbcType="CHAR" />
</resultMap>

<resultMap id="cardSortResultAAAA" class="com.wulidou.bean.dictionary.transfer.CardSort" >
<!--
WARNING - This element is automatically generated by Abator for iBATIS, do not modify.
This element was generated on Wed Nov 04 15:33:25 CST 2009.
-->
<result column="id" property="id" jdbcType="INTEGER" />
<result column="named" property="named" jdbcType="VARCHAR" />
</resultMap>

<select id="queryAll" resultMap="cardSortResultAAAA">
select id, named from cardsort where isShow = '1' order by rank
</select>

----------------
我有一个CardSort表,有四个字段。
如上配置,当我只想查询id 和 named 两个字段时候,经实验测试,必须得配置只有两个字段的resultMap才行,如果用原来的那个 id="cardSortResult" 则会报错说其余两个字段找不见什么的。
显然,这样非常麻烦,那么,怎么觉得这个问题呢? 这个resultMap难道不能通用吗? 请告诉解决办法。
...全文
1086 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
道光2008 2009-11-10
  • 打赏
  • 举报
回复
直接写个类rank、isShow,resultClass就完事啦
sangshusen_1988 2009-11-10
  • 打赏
  • 举报
回复
可以使用一个类专门去封装,也可以使用直接返回一个Map不是更好
xdy2008 2009-11-10
  • 打赏
  • 举报
回复
[Quote=引用楼主 chongan_wang 的回复:]
<resultMap id="cardSortResult" class="com.wulidou.bean.dictionary.transfer.CardSort" >
    <!--
      WARNING - This element is automatically generated by Abator for iBATIS, do not modify.
      This element was generated on Wed Nov 04 15:33:25 CST 2009.
    -->
    <result column="id" property="id" jdbcType="INTEGER" />
    <result column="named" property="named" jdbcType="VARCHAR" />
    <result column="rank" property="rank" jdbcType="INTEGER" />
    <result column="isShow" property="isShow" jdbcType="CHAR" />
  </resultMap>
 
  <resultMap id="cardSortResultAAAA" class="com.wulidou.bean.dictionary.transfer.CardSort" >
    <!--
      WARNING - This element is automatically generated by Abator for iBATIS, do not modify.
      This element was generated on Wed Nov 04 15:33:25 CST 2009.
    -->
    <result column="id" property="id" jdbcType="INTEGER" />
    <result column="named" property="named" jdbcType="VARCHAR" />
  </resultMap>

  <select id="queryAll" resultMap="cardSortResultAAAA">
      selectid, namedfrom cardsort where isShow = '1' order by rank
  </select>

----------------
我有一个CardSort表,有四个字段。
如上配置,当我只想查询id 和 named 两个字段时候,经实验测试,必须得配置只有两个字段的resultMap才行,如果用原来的那个 id="cardSortResult" 则会报错说其余两个字段找不见什么的。
显然,这样非常麻烦,那么,怎么觉得这个问题呢? 这个resultMap难道不能通用吗? 请告诉解决办法。
[/Quote]


lz如果你只想返回两个字段,为何不配成返回CLASS为HASHMAP呢?这样返回的字段随便你加多少?灵活性很强,,,

如果你返回的是一个实体类的话,必须选择的字段和实体类里对应起来,不然一定会报错的....
timeriver_wang 2009-11-10
  • 打赏
  • 举报
回复
cardSortResultAAAA映射2个字段
cardSortResult映射4个字段
timeriver_wang 2009-11-10
  • 打赏
  • 举报
回复
[Quote=引用楼主 chongan_wang 的回复:]
当我只想查询id 和 named 两个字段时候,经实验测试,必须得配置只有两个字段的resultMap才行,如果用原来的那个 id="cardSortResult" 则会报错说其余两个字段找不见什么的。
显然,这样非常麻烦,那么,怎么觉得这个问题呢? 这个resultMap难道不能通用吗? 请告诉解决办法。
[/Quote]
就是这样的,多查询2个字段不会影响太大的效率

resultMap实现通用,我就知道这种
<typeAlias alias="CardSort" type="com.wulidou.bean.dictionary.transfer.CardSort"/>
<resultMap id="cardSortResultAAAA" class="CardSort" >
<result column="id" property="id" jdbcType="INTEGER" />
<result column="named" property="named" jdbcType="VARCHAR" />
</resultMap>

<resultMap id="cardSortResult" class="CardSort" extends="cardSortResultAAAA">
<result column="rank" property="rank" jdbcType="INTEGER" />
<result column="isShow" property="isShow" jdbcType="CHAR" />
</resultMap>
这样配置文件看起来舒服一些

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧