MySQL與Java 整型資料對映
阿新 • • 發佈:2021-10-31
MySQL 整型資料tinyint 、int和bigint對映成Java資料型別分析,常見異常java.math.BigInteger分析。
讀後有收穫,小禮物走一走,請作者喝咖啡。
- tinyint 佔用1個位元組,取值範圍-128到127,對映成Java中的Integer型別;tinyint(1)用來表示boolean型別,0代表false,非0代表true,對映成Java中的Boolean。
- int 佔用4個位元組,取值區間是[-2^31, -2^31-1],在java中會對映成Integer型別。
- bigint 佔用8個位元組,取值範圍[-2^63, -2^63-1],在java中會對映成Long 型別;而BIGINT UNSIGNED的取值區間是[0, 2^64-1],其中一半的資料超出了Java中Long型別的取值區間,則需要將其對映為BigInteger。
溫馨提示,MySQL中在宣告型別時,不管是int(7)還是bigint(7),括號內數字7不會限儲存值的大小,只限制查詢結果的展示寬度。
舉個例子,在Mybatis將BIGINT UNSIGNED型別資料庫欄位轉換成實體物件中Long型別時,對超出Long取值區間的值處理不當就會出現以下異常:
java.lang.ClassCastException: java.lang.Long cannot be cast to java.math.BigInteger
讀後有收穫,小禮物走一走,請作者喝咖啡。
讚賞支援