一. 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
所有评论(0)