引入
在使用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查詢就會失效。初始化資料 走索引了,並且資料查詢出來了 沒有走索引,資料還沒...