您的位置:首页 > 其它

ibatis中resultClass与resultMap 的区别

2013-08-13 14:57 375 查看
ibatis的resultClass与resultMap还是有很大的区别。以下是我碰到的一个问题。 配置文件写法如下: 1 sqlMap2 typeAlias alias="notice" type="path.country.basic.entity.Notice"/3 resultMap id={% ... ibatis的resultClass与resultMap还是有很大的区别。以下是我碰到的一个问题。

配置文件写法如下:

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。

转自:http://blog.csdn.net/utstarm/article/details/8291910
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: