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

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 类型。

BIT FLOAT CHAR TIMESTAMP OTHER UNDEFINED
TINYINT REAL VARCHAR BINARY BLOG NVARCHAR
SMALLINT DOUBLE LONGVARCHAR VARBINARY CLOB NCHAR
INTEGER NUMERIC DATE LONGVARBINARY BOOLEAN NCLOB
BIGINT DECIMAL TIME NULL CURSOR ARRAY

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

[java] view plain copy
package 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

-总结一下:

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


-

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值