ibatis的resultClass与resultMap

来源:互联网 发布:查看手机网络制式 编辑:程序博客网 时间:2024/05/28 23:19
1 <sqlMap> 2 <typeAlias alias="notice" type="path.country.basic.entity.Notice"/> 3 <resultMap id="noticeResult" class="notice" > 4 <result property="id" column="MainID"/> 5 <result property="content" column="Notice_Content"/> 6 <result property="isUsed" column="Notice_IsUsed"/> 7 <result property="createMan" column="CreateId"/> 8 <result property="createDate" column="CreateDate"/> 9 <result property="createIp" column="CreateIP" />10 <result property="lastModifyMan" column="ModifyId"/>11 <result property="lastModifyDate" column="ModifyDate" />12 <result property="lastModifyIp" column="ModifyIP" />13 <result property="manName" column="CreateId" select="getUserNameById"/>14 </resultMap>
15 <select id="getNewNotice" resultClass="notice">16 SELECT * FROM Bse_Notice WHERE Notice_IsUsed='1'17 </select>18  </sqlMap
 
在前台调用时,对象是取到了,但是里面的属性值为空。

      查了相关资料才知道:resultclass属于隐身映射,虽然你指定resultclass=“”,具体某一个类,但是select语句得到的结果是一条实力记录,但如果数据库字段与类的属性名字不一致,这个时候就会出现映射错误,有一种方式可以解决就是在写select语句时,给每个字段用as运算符取名字与属性一样:例如:select realname as name...其中realname是字段列名,name是属性字段名。

      当然解决问题还是很容易的,只需要把resultClass改为resultMap就行了。

      在性能方面,resultMap要比resultClass高,所以建议尽量使用resultMap

FROM:http://www.cnblogs.com/Henry_zp/archive/2011/01/05/1926042.html

0 0
原创粉丝点击