mybatis返回map型別資料空值欄位不顯示

2021-09-24 16:58:32 字數 745 閱讀 1649

業務需求背景

為另乙個系統提供介面查詢資料,當資料為空時,該字段就直接不顯示了,不符合對方的引數要求,現需要將所有字段進行展示。

解決方法一

對具體字段進行判斷,為空則給預設值顯示

(case when a.end_time is null then '' else a.end_time end) as "enddate"
也可以使用ifnull函式進行判斷

ifnull(a.end_time,'') as "enddate"
解決方法二
<?xml version="1.0" encoding="utf-8"?>

spring-mybatis.xml

解決方法三

查詢結果型別,使用實體類接收,而不是map接收;(我沒有使用這種方法,因為我的需求返回值型別為list>,這樣的返回型別無需二次處理,直接返回給呼叫者就行了。

總結對比

如果需要在值為空時,自定義顯示值,顯然是使用第一種方式比較好,但是缺點就是需要對每個修改的字段都做這樣的判斷;相比於方式一,方式二就更具有全域性性,但是方式二不支援自定義的顯示值,只會給為空的字段賦值為null;方式三的接收型別為實體類,方便於物件查詢,而且欄位為空時,可以進行自定義,需要在resultmap中,指定typehandler即可。

MyBatis查詢返回Map型別資料

今天在交通費計算交易中,需要查詢全部base地的交通費,需要返回map集合。然後經查資料,實現過程如下 select base,traffic fare from t ead trafficbase 2.dao中的成員方法 public list getbasemap 3.對返回list的處理 pr...

MyBatis查詢返回Map型別資料

2.dao中的成員方法 public list getbasemap 3.對返回list的處理 private mapgetbasemap logger logger else if traffic fare equals entry.getkey basemap.put base,fare ret...

Map返回型別

當乙個方法想要返回不止乙個引數時,可以定義map型別做返回型別,具體 例子如下 public maptestmethod listquestions renum questions.size questions1.size map.put questionlist questions1 map.pu...