Ibatis查詢資料庫欄位為空時的處理

2021-06-20 03:26:37 字數 721 閱讀 9633



引入

在使用ibatis

的時,有遇到這麼個情況:資料庫表的字段

age是允許為空的,其對應實體類的屬性是

int型別的。然後恰好碰到了這種情況:當查詢時,資料庫

age欄位為空,在

ibatis

的對映檔案裡,我把其查詢結果返回到對應的實體類裡:

resultclass="com.teana.vo.user"

,而問題就出現在這裡了,由於

user

類的age

屬性是int

的,當在資料庫查詢

age欄位為

null

時,把null

賦值給了

int型別的

age,於是

ibatis

拋異常了。

解決方案

1、在資料庫允許為空的字段設定預設值。

(這樣做估計是不行的,而且工作量巨大) 2

、把實體類裡的所有基本型別改為包裝型別

(工作量巨大) 3

、在裡把允許為空的字段設定乙個預設值

(跟第一種很相似,工作量巨大

),然後查詢結果用

resultmap接收4

、這種情況不多見,先只改當前出錯的地方,把出錯地方實體類的屬性改為

integer

對mysql資料庫中字段為空的處理

資料庫中字段為空的有兩種 一種為null,另一種為空字串.null代表數值未知,空字串是有值得,只是為空。有時間我們想把資料庫中的資料以excel形式匯出時 如果碰到欄位為空的,為空的字段會被後面有資料的字段佔據,這樣就導致列數錯亂的現象。為了避免這種現象,我們可以用其它符號表示空的字段。如果要處理...

資料庫字段設定為《非空》《預設值》

為什麼資料庫要設定預設值呢?因為我們希望在插入資料時,有意或無意間被忽略的字段能夠交由mysql按我們事先預想的方式處理,例如一些預設正常狀態碼 使用者插入資料時候尚未設定的文字字段,諸如此類。假設student表裡有乙個欄位score被設定為 非空 預設值 插入一條資料記錄時,score字段值為空...

mysql資料庫設計欄位不為空

起因,我設計資料庫的時候一般情況下預設是不願意讓字段為空的,因為is null這樣的話,是不走索引。所以我基本上設定了不為空。因為設定了不為空,所以sql也要和原來的is null 變成 之前用的逆向工程的andisnull查詢就會失效。初始化資料 走索引了,並且資料查詢出來了 沒有走索引,資料還沒...