Java, JDBC, MySQL 类型转换

一般情况下,MySQL的类型都能转换为 java.lang.String,并且任何数值类型也都能转换为 Java 的数值类型(但是有可能会丢失精度)

Section1

MySQL类型 可转换的Java类型
CHAR, VARCHAR, BLOB, TEXT, ENUM, and SET java.lang.String, java.io.InputStream, java.io.Reader, java.sql.Blob, java.sql.Clob
FLOAT, REAL, DOUBLE PRECISION, NUMERIC, DECIMAL, TINYINT, SMALLINT, MEDIUMINT, INTEGER, BIGINT java.lang.String, java.lang.Short, java.lang.Integer, java.lang.Long, java.lang.Double, java.math.BigDecimal
DATE, TIME, DATETIME, TIMESTAMP java.lang.String, java.sql.Date, java.sql.Timestamp

Section2

JDBC 自动转换如 ResultSet.getObject() 方法得到的类型转换表:

MySQL类型 返回的 Java 类型
SMALLINT,MEDIUMINT java.lang.Integer
INT java.lang.Integer 无符号,则是 java.lang.Long
BIGINT java.lang.Long, 无符号,则是 java.math.Integer
FLOAT java.lang.Float
DOUBLE java.lang.Double
DECIMAL java.math.BigDecimal
DATE java.sql.Date
DATETIME java.sql.Timestamp
TIMESTAMP java.sql.Timestamp
TIME java.sql.Time
CHAR, VACHAR java.lang.String
BINARY byte[]
TEXT java.lang.String
MEDIUMTEXT java.lang.String
MEDIUMBLOB byte[]
LONGTEXT java.lang.String
LONGBLOB byte[]
ENUM java.lang.String