欢迎来到代码驿站!

JAVA代码

当前位置:首页 > 软件编程 > JAVA代码

浅谈Mybatis中resultType为hashmap的情况

时间:2021-05-17 08:40:27|栏目:JAVA代码|点击:

现在有一张user表

id ,name,age

我们进行一个简单的查询:

<select id="test" resultType="Uer">
   select id ,name,age from user
</select>

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

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

<select id="test" resultType="hashmap">
   select id ,name,age from user
</select>

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

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

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

问:

mapper配置如下

<select id="query_user_info_by_list" resultType="java.util.HashMap">
 select id,name,nickname,status from user order by create_time desc
</select>

name, nickname 有的是null

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

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

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

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

答:

<settings>
 <setting name="callSettersOnNulls" value="true"/>
</settings>

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

上一篇:Compare And Swap底层原理及代码示例详解

栏    目:JAVA代码

下一篇:Mybatis逆工程的使用

本文标题:浅谈Mybatis中resultType为hashmap的情况

本文地址:http://www.codeinn.net/misctech/123132.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有