标签:
明明如月 QQ 605283073
本科英语翻译专业 研究生 软件工程专业 爱好JAVA 学习2年+
纯粹爱好,利用业余时间翻译。首次尝试翻译 有不足请见谅。
4.1.5 Result Maps
结果映射(ResultMap) 是 MyBatis框架中最重要和强大的元素.
它为你节省从JDBC结果集中获取数据90%的代码,在某些情况下甚至提供给JDBC都不支持的功能。
实际上,写一些比如含有join的复杂语句映射的等价代码甚至需要上千行代码。结果映射(ResultMaps)设计的简洁语句不需要明确的结果映射,甚至更复杂的语句仅需要必须的关系描述。
你已经见识过了没有明确结果映射(ResultMap)的简单映射的例子,如下:
<select id="selectUsers" resultType="map"> select id, username, hashedPassword from some_table where id = #{id} </select>
package com.someapp.model; public class User { private int id; private String username; private String hashedPassword; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getHashedPassword() { return hashedPassword; } public void setHashedPassword(String hashedPassword) { this.hashedPassword = hashedPassword; } }
基于JavaBean风格的上述类包含3个属性:id,username,hashedPassword。这3个属性名好选择语句中的类名完全相同。这种JavaBean可以像HashMap一样非常容易的映射到ResultSet(结果集)中。
<select id="selectUsers" resultType="com.someapp.model.User"> select id, username, hashedPassword from some_table where id = #{id} </select>
<!-- In Config XML file --> <typeAlias type="com.someapp.model.User" alias="User"/> <!-- In SQL Mapping XML file --> <select id="selectUsers" resultType="User"> select id, username, hashedPassword from some_table where id = #{id} </select>
<select id="selectUsers" resultType="User"> select user_id as "id", user_name as "userName", hashed_password as "hashedPassword" from some_table where id = #{id} </select>
|
ResultMaps的伟大之处在于,你学的很多,但是还没亲眼见识到他的效果!
这些简单的例子就需要你所见的这么点配置。
为了演示起见,让我们看看如果用另外一种外部结果映射(ResultMap)的方式去解决如上例中列名和属性名不匹配的问题。
<resultMap id="userResultMap" type="User"> <id property="id" column="user_id" /> <result property="username" column="user_name"/> <result property="password" column="hashed_password"/> </resultMap>
这个语句参考结果映射(ResultMap)属性来实现(请注意:我们移除了结果类型)。例如:
<select id="selectUsers" resultMap="userResultMap"> select user_id, user_name, hashed_password from some_table where id = #{id} </select> |
现在如果世界总是这么简单该多好。
MyBatis 3.2.8 用户手册 4.1.5 Result Maps
标签:
原文地址:http://blog.csdn.net/w605283073/article/details/45317031