Mybatis最入门---ResultMaps基本用法

来源:互联网 发布:淘宝店没生意怎么办 编辑:程序博客网 时间:2024/05/21 05:59

1.首先,我们先来看看基本的映射语句,如下:

[ht
<select id="findUserById" resultType="userResultMap">    select id,Password    from sysuser    where id = #{id}  </select>  

ml] view plain cop
2.对应的属性resultType="map",需要在mapper文件中加入如下内容 view plain copy
<resultMap id="userResultMap" type="User">    <id property="id" column="id" />    <result property="password" column="password"/>  </resultMap>  

解释如下:

外层“id”属性:即sql语句用引用的标识,其值需要在该文件中具有唯一性。

外层“type”属性:即结果返回的目标对象(user),这里需要定义为一个全路径标识的对象,或者使用别名的对象。

内层“id”标签:即当前结果集合的主键。

内层“property”属性:即当前结果返回的目标对象的属性(user中的属性)。

内层“column”属性:即在数据库中对应的列名。

除此之外,我们在前文中还提到内层可以使用的属性有

“javaType”:一个 Java 类的完全限定名,或一个类型别名(参考上面内建类型别名 的列表) 。如果你映射到一个 JavaBean,MyBatis 通常可以断定类型。 然而,如果你映射到的是 HashMap,那么你应该明确地指定 javaType 来保证所需的行为。

“jdbcType”:在这个表格之后的所支持的 JDBC 类型列表中的类型。JDBC 类型是仅 仅需要对插入,更新和删除操作可能为空的列进行处理。这是 JDBC jdbcType 的需要,而不是 MyBatis 的。如果你直接使用 JDBC 编程,你需要指定 这个类型-但仅仅对可能为空的值。

“typeHandler”:我们在前面讨论过默认的类型处理器。使用这个属性,你可以覆盖默 认的类型处理器。这个属性值是类的完全限定名或者是一个类型处理 器的实现,或者是类型别名。


MyBatis ,支持下面的 JDBC 类型。

BITFLOATCHARTIMESTAMPOTHERUNDEFINEDTINYINTREALVARCHARBINARYBLOGNVARCHARSMALLINTDOUBLELONGVARCHARVARBINARYCLOBNCHARINTEGERNUMERICDATELONGVARBINARYBOOLEANNCLOBBIGINTDECIMALTIMENULLCURSORARRAY

3.对应的User对象为如下内容

[java] view plain copypackage com.csdn.ingo.entity;    import java.io.Serializable;  /** *@author 作者 E-mail:ingo *@version 创建时间:2016年4月17日下午6:25:27 *类说明 */  @SuppressWarnings("serial")  public class User implements Serializable{            private String id;      private String password;      public String getId() {          return id;      }      public void setId(String id) {          this.id = id;      }      public String getPassword() {          return password;      }      public void setPassword(String password) {          this.password = password;      }      public User(String id, String password) {          super();          this.id = id;          this.password = password;      }      public User() {          super();          // TODO Auto-generated constructor stub      }  }  


4.在某些情况下,我们没有使用resultmap,并且数据库中的列名与java对象的属性名不是一一对应的,就需要采用如下的方法,进行匹配。具体写法如下:

<select id="selectUsers" resultType="User">    select      user_id           as "id",      user_password     as "password"    from sysuser    where id = #{id}  </select>  


[html] view plain copy

-总结一下:

假如,我们的查询都是如此简单,世界该多么美好!!!


-

原创粉丝点击