spring mvc+mybatis返回map型別資料為空值時欄位不顯示問題
阿新 • • 發佈:2018-12-14
<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中了
推薦使用第二種方法