`
wellba
  • 浏览: 31158 次
  • 性别: Icon_minigender_1
  • 来自: 郴州
社区版块
存档分类
最新评论

解决mybatis查询resultType是HashMap,字段值为null,结果集问题

阅读更多
<select id="select" parameterType="xx" resultType="java.util.HashMap">
    select a,b,c,d,e from t_order o 
</select>


假设SQL查询有3条记录,
第一条所有字段都有值,
第二条字段b为null,e为空字符串
第三条c、d 字段结果为null
那么结果为
[{a=xx, b=xx, c=xx, d=xx, e=xx}, 
 {a=xx, c=xx, d=xx, e=},
 {a=xx, b=xx, e=xx}]


想要结果集显示为
[{a=xx, b=xx, c=xx, d=xx, e=xx}, 
 {a=xx, b=null, c=xx, d=xx, e=},
 {a=xx, b=xx, c=null, d=null, e=xx}]


在mybatis-config.xml配置文件中加下面这句代码即可解决
<!-- 在null时也调用 setter,适应于返回Map,3.2版本以上可用 --> 
<setting name="callSettersOnNulls" value="true"/>
分享到:
评论
3 楼 夜凉丶风 2017-11-18  
我也是来感谢的,没找到这个就要修改很多东西。。。
2 楼 woaihuangjiaju 2016-12-08  
注册账号,前来感谢。这个问题困扰了我一下午
1 楼 jilonghun 2016-09-08  
给力,问题得解,谢谢分享。

相关推荐

    解决mybatis使用char类型字段查询oracle数据库时结果返回null问题

    "解决mybatis使用char类型字段查询oracle数据库时结果返回null问题" 在使用mybatis框架对Oracle数据库进行查询操作时,如果使用char类型字段作为查询条件,可能会出现结果返回null的问题。这种情况下,需要对char...

    MybatisGenerator代码生成器(可查询指定字段)

    MybatisGenerator本身是没有提供查询指定字段的,例如数据库有5个字段,我想查询其中3个字段的全部记录,这是做不到的。经过研究MybatisGenerator实现原理,在保证原有功能的基础上,实现了生成查询指定字段的相关...

    mybatis拦截器实现通用权限字段添加的方法

    MyBatis拦截器实现通用权限字段添加的方法 MyBatis拦截器是一种非常实用的技术,可以用来实现各种复杂的数据库操作。本文将详细介绍如何使用MyBatis拦截器来实现通用权限字段添加,达到灵活、可靠、可维护的数据库...

    mybatis多条件查询处理方案(查询条件为数据库字段非传递参数).pdf

    在MyBatis中,多条件查询是常见的需求,特别是在数据检索和过滤时。通常,我们会根据传递的参数来决定查询的条件。然而,有时我们可能需要根据数据库字段本身的状态来进行查询,而不是依赖于传递的参数。针对这种...

    mybatis分布查询以及resulttype和resultmap的用法

    - **resultType**:这是MyBatis中最简单的结果集映射方式,用于直接将查询结果映射到一个特定的Java类型。例如,在上述例子中,`resultType="com.example.User"`表示查询结果将直接映射到`User`类的实例,MyBatis会...

    Mybatis只更新set过的字段插件

    这个插件的主要作用是自动识别Mybatis中的Update语句,根据传入的参数对象,只对设置了新值的字段生成UPDATE语句,从而避免了全字段更新的问题,提高了数据更新的效率,并降低了数据库锁定的风险。在原1.0版本中,...

    mybatis中查询结果为空时不同返回类型对应返回值问题

    如果 resultType 为 Map,例如 HashMap,那么当查询结果为空时,dao 层接口返回的结果为 null。 第四种:resultType 为 List 如果 resultType 为 List,那么当查询结果为空时,dao 层接口返回的结果为空集合([])...

    Mybatis查不到数据查询返回Null问题

    首先,当Mybatis返回的查询结果为NULL时,可能的原因有很多。一种常见的原因是SQL语句的执行问题,例如查询条件不匹配或者SQL语句本身有语法错误。从提供的日志信息来看,我们看到的SQL语句是: ```sql SELECT id,a...

    Map接收Mybatis的结果,字段1为Key,字段2为Val

    以上就是使用ResultHandler将MyBatis查询结果转换为Map,以字段1为Key,字段2为Value的具体实现步骤。这种方法允许我们更灵活地处理查询结果,尤其在需要快速查找特定字段对应值的情况下非常实用。

    MyBatis动态条件通用查询

    Map可以存储键值对,其中键(key)对应于数据库表中的字段名,值(value)则为该字段的查询条件。例如,如果Map包含键`name`和对应的值`John`,那么在生成的SQL语句中,将会包含`name = 'John'`这一条件。 动态SQL...

    struts2+mybatis解决longblob字段问题

    在Struts2+MyBatis的环境下,我们需要解决两个主要问题:如何将二进制数据存入数据库以及如何从数据库读取并在前端展示或下载。 1. 存储`LONGBLOB`字段: 在MyBatis中,自定义TypeHandler是非常重要的,它负责将...

    spring+mybatis下BLOB字段的图片存取代码

    spring+mybatis下BLOB字段的图片存取代码,仅整理了Controller层的代码,service和dao的代码很简单,所以没有整理

    Mybatis 处理 CLOB、BLOB 类型数据

    Mybatis 处理 CLOB、BLOB 类型数据 MyBatis 处理 CLOB、BLOB 类型数据是指在使用 MyBatis 框架时,如何正确地处理大字段类型的数据。CLOB(Character Large OBject)和 BLOB(Binary Large OBject)都是大字段类型...

    java+mybatis+mysql查询结果集的映射问题.pdf

    在Java和MyBatis框架中,与MySQL数据库交互时,我们常常需要处理查询结果的映射问题。这里主要讨论两种常见的映射方式:使用Map对象和实体类。 首先,我们来看第一种方式,通过Map对象接收查询结果。这种方式中,...

    小程序开发笔记(一):使用mybatis时遇到查询结果返回为空(NULL)的情况,但数据库表有值

    昨天在使用mybatis查询的时候出现了返回结果为null,报错具体情况如下图: 我是用junit进行的接口测试,通过上图可以知道,测试结果返回了7条数据,但是7条数据都为null值。而我的数据库表确是有值的,这说明我的...

    自定义TypeHandler,解决在springboot+mybatis+postgresql时,数据库字段类型为json时,如何与mybatis进行映射

    解决在springboot+mybatis+postgresql时,数据库字段类型为json时,如何与mybatis进行映射

    Mybatis多参数查询与列表查询不同方式实现

    在Mybatis这个强大的持久层框架中,多参数查询与列表查询是常见的操作,尤其是在处理复杂的业务逻辑时。本文将深入探讨Mybatis如何实现这两种查询方式,并提供多种实现方法。 首先,我们来理解Mybatis的基本概念。...

    mybatis返回Integer

    MyBatis在处理返回值时,如果映射文件或Mapper接口声明的返回值是基本类型int,那么MyBatis会在SQL查询结果为null时尝试将null转化为int,这时就会抛出`NullPointerException`,因为null无法转化为int。而当我们将...

    mybatis查询简单示例

    6. **结果映射**:查询结果会自动映射到Java对象,MyBatis支持基本类型和复杂类型的映射。在映射文件中,你可以定义`&lt;resultMap&gt;`标签来指定字段与Java属性之间的对应关系。 7. **Mapper接口与XML映射文件**:在...

Global site tag (gtag.js) - Google Analytics