文档章节

MyBatis 解决查询结果Map中,值为null,不存储键值的问题

muzi1994
 muzi1994
发布于 2017/02/14 10:12
字数 313
阅读 294
收藏 0
点赞 0
评论 0

在MyBatis中,查询结果resultMap返回的是实体类,实体类中则处理值为null的结果。

如:

public void setNickname(String nickname) {
   this.nickname = nickname == null ? null : nickname.trim();
}

但是当返回结果为自定义resultMap时,就会出现,以下情况:

如:

自定义map

<resultMap type="java.util.Map" id="userLoginInfo" >

  <result column="uuid" property="id" />

  <result column="uuid2" property="uuid" />

  <result column="account" property="phone" />

  <result column="login_time" property="loginTime" />

  <result column="token" property="token" />

  <result column="data_progress" property="dataProgress" />

  <result column="account_locked" property="accountLocked" />

  <result column="is_delete" property="isDelete" />

  <result column="nickname" property="nickname" />

  <result column="user_head" property="userHead" />

</resultMap>

返回结果:

{accountLocked=false, loginTime=1480559610977, phone=18301413850, isDelete=false, dataProgress=0, nickname=, id=93cd68fcb95043febd28d6ad86666029, uuid=544dc45953e2dcc60e23ecccc52c578b, token=WT1Kgx}

发现返回结果Map中没有 user_head字段,原来 user_head在数据库中值为null,所以说数据库中所有值为null的字段,在查询接收resultMap时都不存在

解决方法:

1、在Mybatis_config.xml文件中添加配置信息

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE configuration

  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"

  "http://mybatis.org/dtd/mybatis-3-config.dtd">

<configuration>

  <settings>

  <!--解决,查询返回结果含null,没有对应字段值问题-->

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

  </settings>

</configuration>

经测试,值为null的结果在map中存在

测试结果:

{accountLocked=false, loginTime=1480559610977, userHead=null, phone=18301413850, isDelete=false, dataProgress=0, nickname=, id=93cd68fcb95043febd28d6ad86666029, uuid=544dc45953e2dcc60e23ecccc52c578b, token=WT1Kgx}

 

© 著作权归作者所有

共有 人打赏支持
muzi1994

muzi1994

粉丝 4
博文 104
码字总数 30965
作品 0
朝阳
深入了解MyBatis参数

深入了解MyBatis参数 相信很多人可能都遇到过下面这些异常: "Parameter 'xxx' not found. Available parameters are [...]" "Could not get property 'xxx' from xxxClass. Cause: "The exp......

Liuzh_533
2015/03/02
0
10
Mybatis resultMap空值映射问题解决

Mybatis在使用resultMap来映射查询结果中的列,如果查询结果中包含空值的列(不是null),则Mybatis在映射的时候,不会映射这个字段,例如 查询 name,sex,age,数据库中的age字段没有值,Myb...

last
2015/02/02
20.2K
10
MyBatis返回类型resultType和resultMap

MyBatis的返回参数类型分两种 1. 对应的分类为: 1.1.resultMap: 1.2.resultType: 2 .对应返回值类型: 2.1.resultMap:结果集 2.2.resultType:int,string ,long ,class 3. 注意点: 在MyBat...

晨曦艾伯特
01/11
0
0
Mybatis ResultMap 和 resultType 区别

一、概述 MyBatis中在查询进行select映射的时候,返回类型可以用resultType,也可以用resultMap,resultType是直接表示返回类型的,而resultMap则是对外部ResultMap的引用,但是resultType跟...

黑曼巴hy
04/11
0
0
Mybatis--resultType和resultMap

一、概述 MyBatis中在查询进行select映射的时候,返回类型可以用resultType,也可以用resultMap,resultType是直接表示返回类型的,而resultMap则是对外部ResultMap的引用,但是resultType跟...

北京_
2014/08/27
0
1
MyBatis学习整理0

学习java的基本都会“ssh”,我也不例外,其中就包括了hibernate,当时感觉挺神奇的,去年开始接触mybatis,一对比发现,这mybatis有不少优点。 下面分享一下我在学习mybatis的时候整理的内容...

阿信sxq
2016/08/19
88
2
Mybatis3.3.x技术内幕(十四):Mybatis之KeyGenerator

在Mybatis中,执行insert操作时,如果我们希望返回数据库生成的自增主键值,那么就需要使用到KeyGenerator对象。 需要注意的是,KeyGenerator的作用,是返回数据库生成的自增主键值,而不是生...

祖大俊
2016/05/11
890
3
Mybatis基础知识

一、hello world 在线参考文档:http://mybatis.github.io/mybatis-3/zh/index.html 首先我们定义一个需求:根据id查询用户。 1、编写必须的配置文件。 开发mybatis入门程序需要编写两个配置...

littleant2
2015/09/19
227
0
【JavaSE(十一)】Java集合框架(下)

原文地址:https://www.cloudcrossing.xyz/post/43/ 1 Map集合 1.1 Map集合概述 Map是将键和值一 一映射的对象,可以通过键来获取值。一个映射不能包含重复的键;每个键最多只能映射到一个值...

苍云横渡
05/25
0
0
Guava学习笔记 第1个记录(Optional优雅的使用null)

null代表不确定的对象:   Java中,null是一个关键字,用来标识一个不确定的对象。因此可以将null赋给引用类型变量,但不可以将null赋给基本类型变量。   Java中,变量的使用都遵循一个原...

heroShane
2014/02/12
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

shell中的函数、shell中的数组、告警系统需求分析

shell中的函数 格式: 格式: function f_name() { command } 函数必须要放在最前面 示例1(用来打印参数) 示例2(用于定义加法) 示例3(用于显示IP) shell中的数组 shell中的数组1 定义数...

Zhouliang6
48分钟前
2
0
用 Scikit-Learn 和 Pandas 学习线性回归

      对于想深入了解线性回归的童鞋,这里给出一个完整的例子,详细学完这个例子,对用scikit-learn来运行线性回归,评估模型不会有什么问题了。 1. 获取数据,定义问题     没有...

wangxuwei
今天
1
0
MAC安装MAVEN

一:下载maven压缩包(Zip或tar可选),解压压缩包 二:打开终端输入:vim ~/.bash_profile(如果找不到该文件新建一个:touch ./bash_profile) 三:输入i 四:输入maven环境变量配置 MAVEN_HO...

WALK_MAN
今天
0
0
33.iptables备份与恢复 firewalld的9个zone以及操作 service的操作

10.19 iptables规则备份和恢复 10.20 firewalld的9个zone 10.21 firewalld关于zone的操作 10.22 firewalld关于service的操作 10.19 iptables规则备份和恢复: ~1. 保存和备份iptables规则 ~2...

王鑫linux
今天
2
0
大数据教程(2.11):keeperalived+nginx高可用集群搭建教程

上一章节博主为大家介绍了目前大型互联网项目的系统架构体系,相信大家应该注意到其中很重要的一块知识nginx技术,在本节博主将为大家分享nginx的相关技术以及配置过程。 一、nginx相关概念 ...

em_aaron
今天
1
0
Apache Directory Studio连接Weblogic内置LDAP

OBIEE默认使用Weblogic内置LDAP管理用户及组。 要整理已存在的用户及组,此前办法是导出安全数据,文本编辑器打开认证文件,使用正则表达式获取用户及组的信息。 后来想到直接用Apache Dire...

wffger
今天
2
0
HFS

FS,它是一种上传文件的软件。 专为个人用户所设计的 HTTP 档案系统 - Http File Server,如果您觉得架设 FTP Server 太麻烦,那么这个软件可以提供您更方便的档案传输系统,下载后无须安装,...

garkey
今天
1
0
Java IO类库之BufferedInputStream

一、BufferedInputStream介绍 /** * A <code>BufferedInputStream</code> adds * functionality to another input stream-namely, * the ability to buffer the input and to * sup......

老韭菜
今天
0
0
STM 32 窗口看门狗

http://bbs.elecfans.com/jishu_805708_1_1.html https://blog.csdn.net/a1985831055/article/details/77404131...

whoisliang
昨天
1
0
Dubbo解析(六)-服务调用

当dubbo消费方和提供方都发布和引用完成后,第四步就是消费方调用提供方。 还是以dubbo的DemoService举例 -- 提供方<dubbo:application name="demo-provider"/><dubbo:registry address="z...

青离
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部