MyBatis 3.2.8 用户手册 4.1.5 Result Maps

明明如月QQ605283073

本科英语翻译专业 研究生 软件工程专业 爱好JAVA 学习2年+

纯粹爱好,利用业余时间翻译。首次尝试翻译 有不足请见谅。

4.1.5ResultMaps

结果映射(ResultMap)是MyBatis框架中最重要和强大的元素.

它为你节省从

实际上,写一些比如含有join的复杂语句映射的等价代码甚至需要上千行代码。结果映射(ResultMaps)设计的简洁语句不需要明确的结果映射,甚至更复杂的语句仅需要必须的关系描述。

你已经见识过了没有明确结果映射(ResultMap)的简单映射的例子,如下:

<select id="selectUsers" resultType="map">select id, username, hashedPasswordfrom some_tablewhere 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;}}

基于

<select id="selectUsers" resultType="com.someapp.model.User">select id, username, hashedPasswordfrom some_tablewhere 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, hashedPasswordfrom some_tablewhere id = #{id}</select>在这些情况下

<select id="selectUsers" resultType="User">selectuser_id as "id",user_name as "userName",hashed_password as "hashedPassword"from some_tablewhere 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_passwordfrom some_tablewhere id = #{id}</select>

现在如果世界总是这么简单该多好。

昨晚多几分钟的准备,今天少几小时的麻烦。

MyBatis 3.2.8 用户手册 4.1.5 Result Maps

相关文章:

你感兴趣的文章:

标签云: