TINYINT自动转变成BIT的解决方法

今天在经过ReultSet获取mysql字段信息的时候,发现tinyint(1)类型的字段都自动变成了bit(0),开始以为奇怪,查看官网说明后才发现,在没有设置tinyInt1isBit的状况下,这种转换是自动的。html

https://dev.mysql.com/doc/connector-j/5.1/en/connector-j-reference-type-conversions.htmljava

知道问题所在了,下面说说解决方法,tinyInt1isBit这个参数默认状况下是true,在建立jdbc链接的时候将它重置为false便可。mysql

jdbc:mysql://127.0.0.1:3306/db_name?tinyInt1isBit=false

这里还要注意一点的事,jdbc中的各类类型都有默认的显示值,以下图sql

类型名称 显示长度 数据库类型 JAVA类型 JDBC类型索引(int)
VARCHAR L+N VARCHAR java.lang.String 12
CHAR N CHAR java.lang.String 1
BLOB L+N BLOB java.lang.byte[] -4
TEXT 65535 VARCHAR java.lang.String -1
INTEGER 4 INTEGER UNSIGNED java.lang.Long 4
TINYINT 3 TINYINT UNSIGNED java.lang.Integer -6
SMALLINT 5 SMALLINT UNSIGNED java.lang.Integer 5
MEDIUMINT 8 MEDIUMINT UNSIGNED java.lang.Integer 4
BIT 1 BIT java.lang.Boolean -7
BIGINT 20 BIGINT UNSIGNED java.math.BigInteger -5
FLOAT 4+8 FLOAT java.lang.Float 7
DOUBLE 22 DOUBLE java.lang.Double 8
DECIMAL 11 DECIMAL java.math.BigDecimal 3
BOOLEAN 1 同TINYINT    
ID 11 PK (INTEGER UNSIGNED) java.lang.Long 4
DATE 10 DATE java.sql.Date 91
TIME 8 TIME java.sql.Time 92
DATETIME 19 DATETIME java.sql.Timestamp 93
TIMESTAMP 19 TIMESTAMP java.sql.Timestamp 93
YEAR 4 YEAR java.sql.Date 91  
相关文章
相关标签/搜索