場景重現:
mybatis 在查詢的時候,可以返回Map,但是一旦這個字段為空(null)的時候,map里就沒有了。我用的是mysql數據庫,除了在查詢語句上做ifnull判斷給它默認值外,需求是即使值為空(null)l也要保存在map中給我返回來
解決方案一(現在個人推薦這種做法,省時省力):
在mybatis的配置文件中加入,mybatis必須3.2版本以上
<settings>
<setting name="callSettersOnNulls" value="true"/>
</settings>
解決方案二:
在查詢語句上做ifnull判斷給它默認值外,有沒的別的其他辦法,讓他就算值為null也要保存在map中給我返回來
解決方案三:
解決的辦法是用實體(bean)去做返回結果的類型(如果是聯合查詢查詢的話,再一個實體里面添加沒有的屬性即可)。用實體get方法去獲取每個值,這樣的話,就算 是數據庫中是(NULL)值,你也獲取到了你想要的null。不過缺點是要定義實體類,好煩麻煩的說(這種方法不推薦,但是公司有人用)
解決方案四:
使用"case when xxx is null then '' else ... end as XXXX"做默認值(我之前的解決方案),
