MyBatis查询语句返回结果类型为HashMap

简介:

假设有一张表为test

create table test(

   id number,

   name varchar2(80),

   age number

);

查询语句是这样的

<select id="getById" parameterType="string" resultType="hashmap">

   select name, age from test where id = #{id}

</select>

Mapper文件定义如下:

public List<HashMap<String, String>> getById(String id);


假设返回一条记录

第一种情况

   其name字段值为NULL,age字段不为NULL,那么程序接收到的List是这样的:List[{AGE=20}],List的长度为1,这里由于这条记录的name字段为NULL,不被映射。

第二种情况

   name和age字段都为NULL,那么返回的List是这样的:List[null],但是List的长度仍然为1,因为查询到一条记录,只不过这条记录的name和age字段为NULL,由于NULL是不被映射的,既然两个字段都为NULL,于是这个HashMap便为null


   实验结果表明,MyBatis查询语句中,当返回结果类型为HashMap时,若该记录的所有字段值都为NULL,那么该记录映射的HashMap为null;若该记录的所有字段值不全为NULL,那么为NULL的字段将不被映射到HashMap中,不为空的字段将会被映射到HashMap中,并且字段名称为key,字段值为value。


补充:oracle中空字符串就是NULL,而NULL在是不被映射到HashMap中的,所有不会出现这样的List([{NAME=}])




本文转自    手不要乱摸      51CTO博客,原文链接:http://blog.51cto.com/5880861/1394591







相关文章
|
24天前
|
XML Java 数据库连接
mybatis中在xml文件中通用查询结果列如何使用
mybatis中在xml文件中通用查询结果列如何使用
21 0
|
26天前
|
Java 数据库连接 mybatis
Mybatis 多级分类查询
Mybatis 多级分类查询
16 0
|
4天前
|
SQL
MyBatis-Plus-Join关联查询
MyBatis-Plus-Join关联查询
|
4天前
|
SQL XML Java
MyBatis-Plus多表关联查询
MyBatis-Plus多表关联查询
|
10天前
|
SQL XML API
Mybatis-Plus实现查询操作
Mybatis-Plus实现查询操作
15 0
Mybatis-Plus实现查询操作
|
11天前
|
Java 数据库连接 mybatis
MyBatis-Plus查询工具类
MyBatis-Plus是一个MyBatis的增强工具类库,提供了许多实用的查询工具类。
6 0
|
12天前
|
SQL Java 数据库连接
Javaweb之Mybatis的基础操作之查询操作的详细解析
Javaweb之Mybatis的基础操作之查询操作的详细解析
20 0
|
26天前
|
SQL Java 数据库连接
Mybatis查询 出现Unknow colum 'xxxx' in field list 解决办法
Mybatis查询 出现Unknow colum 'xxxx' in field list 解决办法
|
2月前
|
SQL Java 数据库连接
Mybatis查询的时候BigDecimal类型的值查询失效的解决办法
Mybatis查询的时候BigDecimal类型的值查询失效的解决办法