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  
相關文章
相關標籤/搜索