当前位置: 代码迷 >> Java Web开发 >> ibatis求教!解决方法
  详细解决方案

ibatis求教!解决方法

热度:93   发布时间:2016-04-12 23:22:49.0
ibatis求教!!!!!!!!
配置文件如下:
<typeAlias alias="classA"  type="con.bean"/>

<resultMap id="r" class="classA" >
    <result property="id" column="OID"/>
    <result property="grade" column="GRADE"/>
</resultMap>

<select id="query" parameterClass="java.lang.String" resultMap="r">
 select oid,grade from table1
</select> 
如果classA中有3个属性,id、grade、age,通过上面的配置,通过queryforlist方法执行上面的查询,是否会返回一个list而每个list的元素只有oid,grade有数据?另外,如果<select >的resultClass是一个有10个属性的bean,是否可以通过<select>只给其中的5个属性赋值

------解决方案--------------------
resultMap="r"
因为你已经指定了返回的数据映射,所以你查询的结果肯定只有两个结果
------解决方案--------------------
引用:
配置文件如下:
<resultMap id="r" class="classA" >
如果classA中有3个属性,id、grade、age,通过上面的配置,通过queryforlist方法执行上面的查询,是否会返回一个list而每个list的元素只有oid,grade有数据?另外,如果<select >的resultClass是一个有10个属性的bean,是否可以通过<select>只给其中的5个属性赋值 

<resultMap 配置了几个属性,结果列表就会赋值这几个属性,就算多查字段也不会赋值。
也就是说可以灵活配置resultMap来满足你的需求。
------解决方案--------------------
楼上都答得很全了,我就是来看看的.... 
------解决方案--------------------
SqlMapClientTemplate.queryForList(String arg0, Object arg1, int arg2, int arg3)这个object参数是干什么

Object arg1 可表示为key-value的map参数值。传给sql语句用的
  相关解决方案