浅谈Mybatis中resultType为hashmap的情况

 更新时间:2020年12月02日 08:37:37   作者:会飞的猪os  
这篇文章主要介绍了浅谈Mybatis中resultType为hashmap的情况,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

现在有一张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里。

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

相关文章

  • 在CentOS系统上安装Java JDK 8简单步骤

    在CentOS系统上安装Java JDK 8简单步骤

    最近购买一台新的云服务器,用于开发学习使用,因此需要安装很多的组件,下面这篇文章主要给大家介绍了关于在CentOS系统上安装Java JDK8的简单步骤,需要的朋友可以参考下
    2023-12-12
  • spring-boot 多线程并发定时任务的解决方案

    spring-boot 多线程并发定时任务的解决方案

    这篇文章主要介绍了spring-boot 多线程并发定时任务的解决方案,需要的朋友可以参考下
    2019-08-08
  • SpringBoot2.x 整合 thumbnailator 图片处理的示例代码

    SpringBoot2.x 整合 thumbnailator 图片处理的示例代码

    这篇文章主要介绍了SpringBoot2.x 之整合 thumbnailator 图片处理,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-10-10
  • java web中 HttpClient模拟浏览器登录后发起请求

    java web中 HttpClient模拟浏览器登录后发起请求

    这篇文章主要介绍了java web中 HttpClient模拟浏览器登录后发起请求的相关资料,需要的朋友可以参考下
    2017-05-05
  • Java基础之方法重写详解

    Java基础之方法重写详解

    这篇文章主要介绍了Java基础之方法重写详解,文中有非常详细的代码示例,对正在学习java的小伙伴们有非常好的帮助,需要的朋友可以参考下
    2021-05-05
  • MyBatisPlus 主键策略的实现(4种)

    MyBatisPlus 主键策略的实现(4种)

    MyBatis Plus 集成了多种主键策略,帮助用户快速生成主键,本文主要介绍了MyBatisPlus主键策略的实现,具有一定的参考价值,感兴趣的可以了解一下
    2023-10-10
  • Java中的定时任务调度Quartz举例详解

    Java中的定时任务调度Quartz举例详解

    这篇文章主要介绍了Java中的定时任务调度Quartz的相关资料,Quartz是Java平台上的一个强大且灵活的任务调度库,广泛应用于企业级应用中,本文介绍了Quartz的基本概念、核心组件、使用步骤和示例,帮助你更好地利用Quartz进行定时任务调度,需要的朋友可以参考下
    2024-12-12
  • 解决maven打包排除类不生效maven-compiler-plugin问题

    解决maven打包排除类不生效maven-compiler-plugin问题

    总结:在Spring Boot项目B中作为项目A的依赖时,排除启动类不生效的原因是被其他类引用或父POM引入,解决方法是跳过test编译或注释掉@SpringBootTest(classes={BApplication.class})
    2024-11-11
  • Java中FileOutputStream类的使用

    Java中FileOutputStream类的使用

    java.io.FileOutputStream类是文件输出流,用于将数据写出到文件,下面就来介绍一下Java中FileOutputStream类的使用,具有一定的参考价值,感兴趣的可以了解一下
    2023-10-10
  • Spring MVC 中 AJAX请求并返回JSON的示例

    Spring MVC 中 AJAX请求并返回JSON的示例

    本篇文章主要介绍了Spring MVC 中 AJAX请求并返回JSON,具有一定的参考价值,有兴趣的可以了解一下。
    2017-01-01

最新评论