[一步是咫尺,一步即天涯]
本文,我们来介绍Mybatis中最重要的最强大的元素。使用resultMap的使用能够将我们查询数据的结果集合在书写配置时一劳永逸。并且,其能够支持复杂的数据类型。废话不多讲,开始正文部分吧!
-------------------------------------------------------------------------------------------------------------------------------------
1.首先,我们先来看看基本的映射语句,如下:
2.对应的属性resultType="map",需要在mapper文件中加入如下内容:
解释如下:
外层“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 |
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对象的属性名不是一一对应的,就需要采用如下的方法,进行匹配。具体写法如下:
-------------------------------------------------------------------------------------------------------------------------------------
假如,我们的查询都是如此简单,世界该多么美好!!!
欲知后事如何,且听下回分解。。。
-------------------------------------------------------------------------------------------------------------------------------------
至此,Mybatis最入门---ResultMaps基本用法结束