myBatis3之SQL映射的XML文件(resultMap元素之一)
----------
你已经看到简单映射语句的示例了,但没有明确的resultMap。比如:
<select id=”selectUsers” parameterType=”int” resultType=”hashmap”>
select id, username, hashedPassword
from some_table
where id = #{id}
</select>
这样一个语句简单作用于所有列被自动映射到HashMap的键上,这由resultType属性指定。这在很多情况下是有用的,但是HashMap不能很好描述一个领域模型。那样你的应用程序将会使用JavaBeans或POJOs来作为领域模型。MyBatis对两者都支持。看看下面这个JavaBean:
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。这些在select语句中会精确匹配到列名。这样的一个JavaBean可以被映射到结果集,就像映射到HashMap一样简单。
<select id=”selectUsers” parameterType=”int” 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” parameterType=”int” resultType=”User”>
select id, username, hashedPassword
from some_table
where id = #{id}
</select>
这些情况下,MyBatis会在幕后自动创建一个ResultMap,基于属性名来映射列到JavaBean的属性上。如果列名没有精确匹配,你可以在列名上使用select字句的别名(一个基本的SQL特性)来匹配标签。比如:
<select id=”selectUsers” parameterType=”int” resultType=”User”>
select
user_id as “id”,
user_name as “userName”,
hashed_password as “hashedPassword”
from some_table
where id = #{id}
</select>
ResultMap最优秀的地方你已经了解了很多了,但是你还没有真正的看到一个。只是出于示例的原因,让我们来看看最后一个示例中外部的 resultMap是什么样子的,这也是解决列名不匹配的另外一种方式。
<resultMap id="userResultMap" type="User">
<id property="id" column="user_id" />
<result property="username" column="username"/>
<result property="password" column="password"/>
</resultMap>
引用它的语句使用resultMap属性就行了(注意我们去掉了resultType属性)。比如:
<select id=”selectUsers” parameterType=”int” resultMap=”userResultMap”>
select user_id, user_name, hashed_password
from some_table
where id = #{id}
</select>
分享到:
相关推荐
SQL 映射XML 文件是所有sql语句放置的地方。需要定义一个workspace,一般定义为对应的接口类的路径。写好SQL语句映射文件后,需要在MyBAtis配置文件mappers标签中引用。
(类的全路径)"> <resultMap id="BaseResultMap" type="com.tjjp.business.Notice.model.Notice(类的全路径)"> <!-- 对于的类型 jdbcType --> </resultMap>
SQL 映射 XML 文件.......23 Select元素....... 24 Insert、 update、 delete元素......25 Sql元素.....28 MyBatis 3 - User Guide 4 参数(Parameters)..28 resultMap元素..30 高级结果映射.32 id, result元素.......
SQL 映射的 XML 文件 \ 19 select\ 20 insert,update,delete \ 21 sql\ 23 Parameters \ 24 resultMap \ 25 高级结果映射\ 27 id,result \ 29 支持的 JDBC 类型 \ 30 构造方法\ 30 关联\ 31 集合\ 34 ...
> 重命名 MyBatis 元素在 Java 映射器中,右键单击 -> MyBatis Refactor -> 重命名 MyBatis 元素重命名 Java 映射器方法也会更新其引用Miscellaneous向导创建一个新的 XML 映射文件控制台视图中的智能复制菜单用以...
2. Configuration.xml 里面 的<mapper resource="com/yihaomen/mybatis/model/User.xml"/>是包含要映射的类的xml配置文件。 3. 在User.xml 文件里面 主要是定义各种SQL 语句,以及这些语句的参数,以及要返回的类型...
2.4.2 Mapper.xml(映射文件) 20 2.4.3 Mapper.java(接口文件) 21 2.4.4 加载UserMapper.xml文件 22 2.4.5 测试 22 2.4.6 总结 23 3 SqlMapConfig.xml配置文件 24 3.1 配置内容 24 3.2 properties(属性) 24 3.3 ...
<?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"> <resultMap type="Blog" id="blogResult"> <!...
,与大多数Java(Mybatis3,Mybatis Plus)兼容,从Java Spring Mybatis到Go语言的XML SQL文件无痛迁移(仅修改resultMap的javaType以为langType指定go语言类型) 只需一行标记即可定义AOP事务和事务传播行为 异步...
SQL映射的XML文件 ................................................................................................... 19 select.............................................................................
SQL映射的XML文件 ................................................................................................... 19 select.............................................................................
Mybatis介绍、单独使用jdbc编程问题总结、Mybatis架构、Mybatis入门程序、Mybatis开发Dao、SqlMapConfig.xml配置、ParameterType输入映射、ResultType及ResultMap输出映射、动态sql、商品订单数据模型、关联查询(一...
找到之后会在resultMap中添加转成下划线名称的column,在sql的id含有update的标签中添加该属性, 在insert中增加对应的字段和属性 未完成的部分 是否要自定义字段名,这样提供一个映射关系 是否要把类型和字段名放到...