一. Mysql查詢的boolean結果將輸出為0或者1.
比如:
select 1=1;
其輸出結果為1。
二. 使用一套中間件對kafka消息進行解析為mysql 語句,其中遇到如下的問題,
- 目標表有一字段設置類型為:tinyint(1)。
- 源表同步消息中接收到相同類型的數據。
- 其中中間件中有如下解析部分:
- 也就是說,字段tinyint(1)被當做boolean類型進行了返回。導致java中Integer類型無法進行強轉。
-
解決方法:alter talbe change `xxx` `xxx` tinyint(4) ...;即可。修改tinyint數據類型長度,mysql也就不再當做boolean類型進行返回了。
總結:Mysql表結構設計時,要避免設計為tinyint(1)這種類型,以免與boolean類型數據結構進行混淆。引起不必要bug。當然也可以總java代碼中進行修改,修改后的影響,還需另外評估。
原文鏈接:http://www.cnblogs.com/sunlightlee/p/10533466.html