MyBatis開發中解決返回欄位不全的問題

2021-09-07 15:14:50 字數 543 閱讀 9543

場景重現:

mybatis 在查詢的時候,可以返回map,但是一旦這個欄位為空(null)的時候,map裡就沒有了。我用的是mysql資料庫,除了在查詢語句上做ifnull判斷給它預設值外,需求是即使值為空(null)l也要儲存在map中給我返回來

解決方案一(現在個人推薦這種做法,省時省力):

在mybatis的配置檔案中加入,mybatis必須3.2版本以上

解決方案二:

在查詢語句上做ifnull判斷給它預設值外,有沒的別的其他辦法,讓他就算值為null也要儲存在map中給我返回來

解決方案三:

解決的辦法是用實體(bean)去做返回結果的型別(如果是聯合查詢查詢的話,再乙個實體裡面新增沒有的屬性即可)。用實體get方法去獲取每個值,這樣的話,就算 是資料庫中是(null)值,你也獲取到了你想要的null。不過缺點是要定義實體類,好煩麻煩的說(這種方法不推薦,但是公司有人用)

解決方案四:

使用"case when *** is null then '' else ... end as ***x"做預設值(我之前的解決方案),

Mybatis中返回Map的實現

在mybatis中,我們通常會像下邊這樣用 返回乙個結果 user selectone user user 程式設計客棧r.entity.user resulttype cn.lyn4ever.entity.user select id,username,telphone from user whe...

解決mybatis用Map返回的字段全變大寫的問題

mybatis通常情況都是用j abean作為resulttype的物件,但是有時也可以使用map去接收。www.cppcns.comgt 如果使用map,返回來的字程式設計客棧段名全是大寫,處理方法 select name as name from v zhyl zxzf hqyzflb 加上字段...

解決Mybatis中result標籤識別不了的情況

目錄 有個user類 在mybatis result標籤中這樣對映 這是就會發現proper程式設計客棧ty name 這個報紅 這是因為大寫不識別的原因,大寫開頭 它會變成 l 將name 重新www.cppcns.com寫成name就可以 id 和 re 都將乙個列的值對映到乙個簡單資料型別 字...