mysql中Tinyint(1)資料格式自動轉為boolean型別

NO IMAGE

一次專案中資料庫使用Tinyint(1),實體類使用boolean,剛開始還好奇怎麼可以這樣儲存,

不過自己測試了一下,set屬性為true,資料庫欄位自動儲存為1,set屬性為false,資料庫欄位自動儲存為0

後來網上查了相關資料,整理如下:

1.資料

1.MYSQL資料庫無法直接儲存true跟false,將其存為Tinyint儲存為0和1,是比較常見的一種

2.MYSQL儲存與代表BOOLEAN值為TRUE,0代表FALSE,boolean在MySQL中型別tinyint(1)中,
MySQL有四個常量:true,false,TRUE,FALSE,它們代表1,0,1,0,

3.MySQL資料庫將欄位的資料型別BOOL/BOOLEAN預設地轉換成TINYINT(1);

4.儲存和查詢的時候,0會表現為false,其他的1,2,3…….,將會表現為true

5.Tinint它只佔用一個位元組,推薦0,1多的使用,但是使用enum不靈活,定義的型別如果是1及以上的就無法區分了

2.方案

儲存boolean型別的時候用Tinint(1),並且只用0和1,不要儲存其他值

資料庫格式為tinint,實體類定義為boolean型別,對於查詢增加操作mysql資料庫自動對應,0對應false,1對應true