码迷,mamicode.com
首页 > 数据库 > 详细

MySQL "tinyInt1isBit or tinyint(1)" 相关问题解析

时间:2018-08-30 21:38:05      阅读:1019      评论:0      收藏:0      [点我收藏+]

标签:方案   nic   ebe   shanghai   png   java数据类型   tiny   参数   rtt   

问题描述

tinyInt 的数据类型,在JAVA数据类型 和 MySQL的数据类型转换,要注意存储长度为 1 的情况。查询时,该字段对应的Java类型为Boolean

源数据:

技术分享图片

读取后数据: 

技术分享图片

问题分析

 MySQL官方的JDBC文档定义转换规则如下:

技术分享图片

 如果tinyInt1isBit=true(默认),且tinyInt存储长度为1,则转为java.lang.Boolean,否则转为java.lang.Integer。

解决方案

1、避免使用长度为 1 的 tinyint 类型字段存储数字格式的数据,tinyInt(1) 只用来代表Boolean含义的字段。其中 0 代表False,1 代表True。如果要存储多个数值,则定义为tinyInt(N), N>1。例如 tinyInt(2)
2、JDBC的URL增加 tinyInt1isBit=false参数,注意参数名区分大小写,否则不生效。
final private val URL = "jdbc:mysql://localhost:3306/test_db?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&tinyInt1isBit=false&serverTimezone=Asia/Shanghai&useSSL=true"

 

Amazing MySQL !~~

MySQL "tinyInt1isBit or tinyint(1)" 相关问题解析

标签:方案   nic   ebe   shanghai   png   java数据类型   tiny   参数   rtt   

原文地址:https://www.cnblogs.com/chwilliam85/p/9562723.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!