?
類型別名(typeAliases):
?????作用:通過一個簡單的別名來表示一個冗長的類型,這樣可以降低復雜度。
????類型別名標簽typeAliases中可以包含多個typeAlias,如下
[html]?view plaincopy
<typeAliases>??????<typeAlias?alias="user"?type="com.jefry.User"/>??????????<typeAlias?alias="student"?type="com.jefry.student"/>???????????……???????????……???????????……??</typeAliases>?? 本著簡單的原則,我還是接著上一講實例代碼來作修改
?在mybatis-config.xml文件增加一個<typeAliases>
??? 代碼如下:
[html]?view plaincopy
<?xml?version="1.0"?encoding="UTF-8"??>??<!DOCTYPE?configuration??PUBLIC?"-//mybatis.org//DTD?Config?3.0//EN"??"http://mybatis.org/dtd/mybatis-3-config.dtd">??<configuration>??????<typeAliases>??????????<typeAlias?alias="user"?type="com.jefry.User"/>??????</typeAliases>????????????<environments?default="development">??????????<environment?id="development">??????????????<transactionManager?type="JDBC"/>??????????????<dataSource?type="POOLED">??????????????????<property?name="driver"?value="com.mysql.jdbc.Driver"/>??????????????????<property?name="url"?value="jdbc:mysql://127.0.0.1:3306/test"/>??????????????????<property?name="username"?value="root"/>??????????????????<property?name="password"?value="root"/>??????????????</dataSource>??????????</environment>??????</environments>??????<mappers>??????????<mapper?resource="com/jefry/UserMapper.xml"/>??????</mappers>??</configuration>??
那么在UserMapper.xml文件中type="com.jefry.User"就可以替換為user
如下:
[html]?view plaincopy
<span?style="font-size:14px;"><?xml?version="1.0"?encoding="UTF-8"??>????<!DOCTYPE?mapper????PUBLIC?"-//mybatis.org//DTD?Mapper?3.0//EN"????"http://mybatis.org/dtd/mybatis-3-mapper.dtd">????<mapper?namespace="User">????????????<select?id="selectUser"?parameterType="int"?resultType="user">????????????select?*?from?t_user?where?id?=?#{id}????????</select>????</mapper>??</span>?? 表-對象映射
??????? 上一講中實例,我們并沒有配置表的字段與實體屬性之間的關聯,但是我們卻得到了我們想要的實例對象。原因是我們的t_user表的各個字段名與User類的成員屬性名完全一致,一旦t_user表的各個字段名與User類的成員屬性名不同(比如t_user某個字段是name,而User的屬性卻是username)怎么辦呢?
???? ? MyBitis借助resultMap實現了表-對象映射如下:
[html]?view plaincopy
<span?style="color:#000000;"><resultMap?id="userResultMap"?type="user">???????????<id?property="id"?column="id"/>???????????<result?property="userName"?column="name"/>???????????<result?property="password"?column="pass"/>????????</resultMap></span>??
?根據字面意思我們很容易將字段與屬性映射起來。
?需要主要的是 resultType="com.jefry.User">變為resultMap="userResultMap"啦。
[html]?view plaincopy
<span?style="color:#000000;">????<select?id="selectUser"?parameterType="int"??resultMap="userResultMap"?>??????????select?*?from?t_user?where?id?=?#{id}???????</select></span>?? 新的UserMapper.xml代碼如下:
[html]?view plaincopy
<span?style="color:#000000;"><?xml?version="1.0"?encoding="UTF-8"??>??<!DOCTYPE?mapper??PUBLIC?"-//mybatis.org//DTD?Mapper?3.0//EN"??"http://mybatis.org/dtd/mybatis-3-mapper.dtd">??<mapper?namespace="user">???????<resultMap?id="userResultMap"?type="user">???????????<id?property="id"?column="id"/>???????????<result?property="userName"?column="name"/>???????????<result?property="password"?column="pass"/>????????</resultMap>????????????????<select?id="selectUser"?parameterType="int"??resultMap="userResultMap"?>??????????select?*?from?t_user?where?id?=?#{id}??????</select>??</mapper></span>?
總結
以上是生活随笔為你收集整理的MyBitis(iBitis)系列随笔之二:类型别名(typeAliases)与表-对象映射(ORM)的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。