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。

轉自:http://blog.csdn.net/utstarm/article/details/8291910


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM