浅谈Mybatis中resultType为hashmap的情况

这篇文章主要介绍了浅谈Mybatis中resultType为hashmap的情况,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

现在有一张user表

id ,name,age

我们进行一个简单的查询

select id ,name,age from user

查询完后,怎么去接收这个查询结果呢,通常在这个mapper.xml对应的接口中使用List做为返回值去接收,最后存储的样子就是下面的图

这是一个很简单的单表查询操作,其实这种简单的单表查询操作不需要引入User类,直接使用resultType="hashmap",接口中使用List做为返回值去接(hashmap也是对象的一种所以可以直接使用Obeject),让查询结果自动封装成Map对象存入list中也可以返回

select id ,name,age from user

当使用hashmap作为返回值类型时,Mybatis会自动将字段名作为key值,将对应的字段值作为value封装到map中,一条记录有多个字段,产生多个key-value键值对存到一个map对象中,多条记录就会生成多个map对象,多个map对象存到list中返回

注意:如果字段对应的值为空,那么在封装map的时候,这个字段会直接被忽略调。

补充知识:resultType="java.util.HashMap" sql返回的null值,不在map里面

问:

mapper配置如下

select id,name,nickname,status from user order by create_time desc

name, nickname 有的是null

这样导致,查询出来的map,本来map.size=4的

但是,如果查询出来的name为null,那么返回的hashmap里面就没有name了

同样,nickname也是一样,请问,如何解决这个问题

我不想在sql里面用nvl函数去做

答:

把这个加到你的mybatis-config.xml里。

以上这篇浅谈Mybatis中resultType为hashmap的情况就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持编程之家。

相关文章

Java中的String是不可变对象 在面向对象及函数编程语言中,不...
String, StringBuffer 和 StringBuilder 可变性 String不可变...
序列化:把对象转换为字节序列的过程称为对象的序列化. 反序...
先说结论,是对象!可以继续往下看 数组是不是对象 什么是对...
为什么浮点数 float 或 double 运算的时候会有精度丢失的风险...
面试题引入 这里引申出一个经典问题,看下面代码 Integer a ...