我已經通過這個com了,我一直沒能找到正確的文檔。當值爲null時,MySQL SMALLINT列在java.lang.Short中返回0
基本上我有一個MySQL表,用於每年舉辦值的列的類型是SMALLINT
列可以爲空列,每當我檢索使用方法resultset.getShort("year");
我得到一個值(NULL
) 0
而不是預期的null
值。
年值是一個bean的成員,這意味着我使用訪問器方法,所以當我使用CallableStatement
對象,並相應地設置了佔位符時,我得到一個NullPointerException
我知道這應該是預期的,但有些情況下,當我需要明確的值設置爲null
如當不提供一年或用戶輸入字母或一個字符串,它是不是一個「年」
這是默認的行爲與其他包裝類原語確實允許null
值。
什麼是正確的類型映射到SMALLINT
或者我應該將列更改爲INT
?
是的,似乎是這樣,爲什麼會是這種行爲的原因? – Triztian 2011-02-18 23:39:03
我認爲該圖書館的創建者認爲它很方便。 getShort實際上是getString的封裝(如果字段爲空,它將返回null)。當字段爲空或「'」時,getSHort返回0,而且如果發生空指針異常。所有這些檢查你不需要做的各種例外。圖書館爲你照顧這件事。所有你需要做的就是在(不太可能)默認值爲0的情況下調用這個額外的函數。 – GolezTrol 2011-02-18 23:48:30