resultMap 映射

1. sql的重用:定义一个sql片段,可在任何SQL语句中重用该片段。

[java] view plain copy
 
  1. <sql id="personColumns"> name, sex, updateTime</sql>  
  2. <select id="selectPerson" parameterType="int" resultType="hashmap">  
  3.     select id, <include refid="personColumns"/> from person where id =#{id};  
  4. </select>  

2. javabean别名:不用每次写包路径

[java] view plain copy
 
  1. <!-- In Config XML file,定义 -->  
  2. <typeAlias type=”com.someapp.model.User” alias=”User”/>  
  3. <!-- In SQL Mapping XML file,使用 -->  
  4. <select id=”selectUsers” parameterType=”int” resultType=”User”>  
  5.     select id, username, hashedPassword from some_table where id = #{id}  
  6. </select>  

3. 表与实体列名不匹配的解决

a) SQL的别名
[java] view plain copy
 
  1. <select id=”selectUsers” parameterType=”int” resultType=”User”>  
  2. select user_id as "id", user_name as userName, hashed_password as hashedPassword from some_table where id = #{id}  
  3. </select>  
b)定义外部的resultMap
[java] view plain copy
 
  1. <resultMap id="userResult" type="User">  
  2.     <id property="id" column="_id" />  
  3.     <result property="name" column="_name" />  
  4.     <result property="password" column="_password" />  
  5. </resultMap>  
  6.   
  7. <select id="selectUser" parameterType="int" resultMap="userResult">  
  8.     select _id, _name, _password from _user where _id =#{id};  
  9. </select> 
posted @ 2016-06-24 14:06  markchuan  阅读(195)  评论(0编辑  收藏  举报