记录mybatis查询数值为空时被删除的解决办法(查询字段值为null时不返回)
背景:
使用SSM框架时,有时查询数据时存在字段为“null”时的情况,但之前不清楚什么时候会返回什么时候不会返回的情况,本文就用来记录自主控制“返回”和“不返回”的解决办法。
同一个接口两种返回情况,示例:
准备两个字段,一个有值一个没值:
去除空值(查多个字段只返回有值的字段):
保留空值(查几个字段就返回几个字段):
通过两种图片对比不难发现:保留空值时返回字段和查询的字段数量保持一致,去除空值时只返回了有值字段。
控制办法:
在mybatis的配置文件中加一行配置:<setting name="callSettersOnNulls" value="true" />。(有这个配置则会保留空值字段,没有的话会自动去除空值字段)
例如:
<?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>
<setting name="callSettersOnNulls" value="true" />
</settings>
</configuration>
如果没有的话可以新增一个配置文件然后在加到"application.yml"里:
1、新增配置文件,增加想要的配置,例如刚刚提到空值相关的配置
2、把配置文件引入到application.yml: