使用Mybatis查詢tinyint(1)字段數據,返回值為Map類型,那么tinyint(1)的數據默認會轉化為boolean類型數據.
為什么會轉換成boolean?
Mysql官方參考文檔關於布爾類型的說明:
BOOL, BOOLEAN
These types are synonyms(同義詞) for TINYINT(1). A value of zero is considered(認為是) false. Nonzero(不為0) values are considered true
Tinyint(1) 就只用來保存 bool 值 只有0和1 不要保存其他的值
解決方案
1.在jdbcUrl添加參數:tinyInt1isBit=false(默認為true)
不推薦使用,每個人的處理方式不一樣,會影響到業務。
2.避免使用長度為1的tinyint類型字段存儲數字格式的數據; 如果要保存多的值,就用 Tinyint(4) Tinyint(1) 與 Tinyint(4)的區別