<select id="selectPerson" parameterType="int" resultType="hashmap"> SELECT * FROM PERSON WHERE ID = #{id} </select>
这个语句被称做 selectPerson,接受一个 int(或 Integer)类型的参数,并返回一个 HashMap 类型的对象,其中的键是列名,值即是结果行中的对应值。html
若是是简单的 返回,就能够不用写 结果集 resultMap 对象了。sql
更多使用参考mybatis 中文文档;mybatis
http://www.mybatis.org/mybatis-3/zh/sqlmap-xml.htmlapp
或者是 :this
<select id="selectUsers" resultType="map"> select id, username, hashedPassword from some_table where id = #{id} </select>
这样一个语句简单做用于全部列被自动映射到 HashMap 的键上,这由 resultType 属性 指定。这在不少状况下是有用的,可是 HashMap 不能很好描述一个领域模型。那样你的应 用程序将会使用 JavaBeans 或 POJOs(Plain Old Java Objects,普通 Java 对象)来做为领域 模型。MyBatis 对二者都支持。看看下面这个 JavaBean:xml
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 语句中会精确匹配到列名。htm
这样的一个 JavaBean 能够被映射到结果集,就像映射到 HashMap 同样简单。对象
<select id="selectUsers" resultType="com.someapp.model.User"> select id, username, hashedPassword from some_table where id = #{id} </select>
这样就不须要些resultMap 了。文档
这些状况下,MyBatis 会在幕后自动建立一个 ResultMap,基于属性名来映射列到 JavaBean 的属性上。若是列名没有精确匹配,你能够在列名上使用 select 字句的别名(一个 基本的 SQL 特性)来匹配标签。好比:get
<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>