mysql tinyint(1)引发的问题与处理

64 阅读1分钟

一、问题描述

  1. 正在做数据对比工具,根据唯一业务主键,查询出两个库的同一条数据,进行字段值的差异对比
  2. 有一个字段的差异对比不出来,该字段为tinyint(1)数据类型
  3. 源库的值为3, 目标库的值为1

二、问题分析

  1. 代码中使用的jdbcTemplate做的数据查询
  2. 经debug发现查询结果做了数据类型转换,都转行为boolean类型,导致不论3,还是1查询出的结果都是true, 结果一直对比不出差异

三、问题解决

  1. 首先考虑的是,能否把数据类型改为int,但是涉及到的改动太大,此办法放弃
  2. 在mysql连接信息处加上tinyInt1isBit=false信息,查询结果不再转换为boolean, 问题解决