需求背景:從MySQL數據庫讀取1、2、3、4等阿拉伯數字定義的狀態,並轉換成Java中Integer類型的數據,但是轉換失敗了。
問題分析:布爾型 bool 或者 boolean 在MySQL里的類型定義為tinyint(1)。當在服務端讀取的時候,字段tinyint(1)的類型被當做boolean類型進行了返回,導致無法轉換為Integer類型。
解決思路:修改tinyint數據類型長度或者改為int類型,mysql也就不再當做boolean類型進行返回了。
經驗總結:Mysql表結構設計枚舉值為1、2、3等阿拉伯數字的時候,要避免設計為tinyint(1)類型,以防止與boolean類型數據結構混淆,導致不必要bug。