1. 程式人生 > >spring mvc+mybatis返回map型別資料為空值時欄位不顯示問題

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中了

推薦使用第二種方法