spring mvc+mybatis返回map类型数据为空值时字段不显示

<select id="getArticleById" resultType="map">
	select * from article t
</select>

当返回结果resultType为map时,如果表中字段为空,则返回的map中就会没有这个字段,有时候我们需要即使字段数据为空也要返回这个空字段。

解决方法:
1.查询sql添加每个字段的判断空

IFNULL(id,'') as id

不太建议这种方法,因为经常要使用select *获取,不能每个字段都要判断一下,太麻烦了。
2.新建一个mybatis-configuration.xml文件
在里面填写如下内容:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD SQL MAP Config 3.1//EN"
    "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
  <settings>
    <setting name="callSettersOnNulls" value="true"/>
  </settings>
</configuration>
然后打开spring-mybatis.xml文件,将新建的mybatis-configuration.xml引进来
<!-- spring和MyBatis完美整合,添加mybatis的配置映射文件 -->
  <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <property name="dataSource" ref="dataSource"/>
    <!--在这里将config文件引入-->
    <property name="configLocation" value="classpath:mybatis-configuration.xml"/>
    <!-- 自动扫描mapping.xml文件 -->
    <property name="mapperLocations" value="classpath:mapping/*.xml"></property>
  </bean>

重启项目,会发现值为空的字段也出现在map中了。
推荐使用第二种方法

你可能感兴趣的:(spring mvc+mybatis返回map类型数据为空值时字段不显示)