Mybatis中resultType为map时,null值的字段不返回问题

问题描述

<select id="getCompanyRoadshow" parameterType="map" resultType="map">
        SELECT
           id,
           name,
           addr
        FROM
           user
         WHERE
           id = #{id}  
    </select>

以上查询,当addr字段值在数据库中为null时,返回的结果如下:

{
"id": 1,
"name": "test"
}

正常我们想要的应该是这样:

{
"id": 1,
"name": "test",
"addr": null
}

解决办法

  • null值变成空字符串
SELECT
	id,
	name,
	case when addr is not null
		then addr 
		else  '' 
	end addr
FROM
	user
WHERE
	id = #{id}  
  • 传统项目配置xml文件中配置:
<settings>
		<!-- 指定当结果集中值为 null 的时调用映射对象的 setter(map 对象时为 put)方法 -->
		<setting name="callSettersOnNulls" value="true" />
</settings>
  • springboot项目properties中配置:
mybatis.configuration.call-setters-on-nulls=true

参考文章:https://www.cnblogs.com/ityangshuai/p/12759787.html

热门文章

暂无图片
编程学习 ·

leetcode 124. 二叉树中的最大路径和

题目 给定一个非空二叉树,返回其最大路径和。 本题中,路径被定义为一条从树中任意节点出发,达到任意节点的序列。该路径至少包含一个节点,且不一定经过根节点。 思路 简单题,dfs返回当前节点为一端的最大链。答案有两种情况,1 当前节点到子孙的一条链 2 当前节点为中端,…
暂无图片
编程学习 ·

LeetCode题解(0744):寻找比目标字母大的最小字母(Python)

题目:原题链接(简单)解法 时间复杂度 空间复杂度 执行用时Ans 1 (Python) O(logN)O(logN)O(logN) O(1)O(1)O(1) 136ms (69.15%)Ans 2 (Python) O(logN)O(logN)O(logN) O(1)O(1)O(1) 136ms (69.15%)Ans 3 (Python)LeetCode的Python执行用时随缘,只要时间复杂度没有明显差异,…
暂无图片
编程学习 ·

电商新手做亚马逊要怎样开始?

"说到互联网创业,很多人的第一个想到的是淘宝,但是很多人并不清楚,经过十几年的发展淘宝已经很难再进入了,利润也是下降到了最低,很多的卖家都在寻找机会做转型,而你一个毫无经验的小白现在进入,基本可以说很难生存,近年来,我国的跨境电子商务进入迅猛的发展阶段,…
暂无图片
编程学习 ·

线程池:ThreadPoolExecutor

github地址: https://github.com/lishanglei/thread-pool.git 源码 public ThreadPoolExecutor(int corePoolSize, //核心线程数int maximumPoolSize,//最大线程数量long keepAliveTime, //线程存活时间TimeUnit unit, //线程存活时间单位 BlockingQueue<Runnable> w…
暂无图片
编程学习 ·

源代码编译安装

源代码编译 使用源代码安装软件的优点获得最新的软件版本,计时修复bug 根据用户需要,灵活定制软件功能应用场景举例安装较新版本的应用时 当前安装的程序无法满足需要时 需要为应用程序添加新的功能时Tarball封包.tar.gz和.tar.bz2格式居多 软件素材参考:http://sourceforg…
暂无图片
编程学习 ·

springboot aop 切到service层,不生效

今天发现一个问题,使用aop切到service层方法上,idea会有切成功的标志,编译也不报错,但就是不生效。研究了下发现,是因为我切的方法被同一个service中的其他方法调用,这样的话就不生效了,暂不清楚原因,解决方法时切到调用它的方法上,这只是切点不生效的一种情况,希望能…
暂无图片
编程学习 ·

线程池

目录概念优点架构线程池三种常用创建方式newFixedThreadPoolnewSingleThreadExecutornewCachedThreadPool线程池底层原理线程池工作流程线程池的拒绝策略自定义线程池 概念 线程池主要是控制运行线程的数量,将待处理任务放到等待队列,然后创建线程执行这些任务。如果超过了最…
暂无图片
编程学习 ·

Linux7.6快速安装tigervnc1.8

前置配置:配置yum环境:确保Linux7.6安装盘存在于光驱中(或虚拟光驱)mkdir /mnt/linux mount /dev/cdrom /mnt/linux cd /etc/yum.repos.d mkdir bk mv *.repo bk/ echo "[EL]" >> /etc/yum.repos.d/yuminstall.repo echo "name =Linux 7.x DVD"…
暂无图片
编程学习 ·

Java 常用算法

算法一:分治法 基本概念 1.把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。 2.分治策略是对于一个规模为n的问题,若该问题可以容易地解决(比如说规模n较小)则直接解…
暂无图片
编程学习 ·

微服务的全局异常处理器

如果是dubbo服务 直接在对外暴露服务的哪个模块添加该类即可 如果是springboot微服务 我们可以把他配置到网关里 并且在启动类配置如下目的是为了让服务知道该配置 否则不生效 ApiReturnObject是一个统一返回值类型 可以根据自己喜好进行定义 这里就不贴代码了package com.s…
暂无图片
编程学习 ·

LittleVGL 源码分析--src/lv_misc/lv_log.h

这是log配置信息:/*================* Log settings 日志设置*===============*//*1: Enable the log module 启用日志模块 */ #define LV_USE_LOG 1 #if LV_USE_LOG /* How important log should be added:* LV_LOG_LEVEL_TRACE A lot of logs to give detailed…
暂无图片
编程学习 ·

字符串按固定长度分割

字符串分隔题目描述•连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组; •长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。输入描述:连续输入字符串(输入2次,每个字符串长度小于100)输出描述:输出到长度为8的新字符串数组示例1输入abc 123456789…
暂无图片
编程学习 ·

算子

算子:是一个函数空间到函数空间上的映射O:X→X。广义上的算子可以推广到任何空间,如内积空间等。 应用领域:数理科学 别 称:算符 外文名 :operator 应用领域:数理科学算子解释广义的算子, 对任何函数进行某一项操作都可以认为是一个算子,甚至包括求幂次,开方…
暂无图片
编程学习 ·

JAVA笔记[2]20200701

JAVA笔记【2】对象与类继承 对象与类LocalDate类;static LocalTime now() 构造一个表示当前日期的对象 static LocalTime of(int year,int month,int day) 构造一个表示给定日期的对象 int getYear() int getMonthValue() int getDayOfMonth() 得到当前日期的年、月和日 DayOf…
暂无图片
编程学习 ·

程序人生 - 西瓜霜能吃下去吗?

西瓜霜是可以吃下去的,但是会影响到临床的药效,临床常用的有西瓜霜和西瓜霜润喉片主要药理作用就是消肿止痛,清咽利嗓,多用于急慢性咽喉炎,扁桃体炎,口腔溃疡,口舌生疮等引起的咽喉疼痛,声音嘶哑,牙龈红肿。通常,主要是局部用药,这样才能够更好的发挥疗效,成年人一…
暂无图片
编程学习 ·

[leetCode]83.删除排序链表中的重复元素

解法一 双指针 思路:跟删除排序数组相同元素想法一致,想到的是使用双指针,一个慢指针i,一个快指针j。首先i指向链表头部,j指向i的下一个元素 如果j元素的值等于i元素的值则跳过重复元素j = j.next,否则不用跳过该元素 每次内循环结束(跳过相同元素结束)使i.next = j;i=…