ibatis中resultClass与resultMap 的区别
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。
轉載于:https://www.cnblogs.com/henuyuxiang/p/5101532.html
總結
以上是生活随笔為你收集整理的ibatis中resultClass与resultMap 的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: VMware安装Centos7后有线线缆
- 下一篇: P3966 [TJOI2013]单词