MySql数据类型与Java数据类型的对应关系

MySQL Connector/J 对于 MySql 数据类型和 Java 数据类型之间的转换是很灵活的。
一般来讲,任何 MySql 数据类型都可以被转换为一个 java.lang.String,任何 MySql 数字类型都可以被转换为任何一种 Java 数字类型(当然这样也可能出一些四舍五入,溢出,精度丢失之类的问题)。

转换表
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


ResultSet.getObject() 方法遵循 JDBC 规范对 MySql 和 Java 的类型进行转换。

ResultSet.getObject() 对 MySql 类型和 Java 类型转换表
MySql 类型名 GetColumnClassName 返回值 返回的 Java 类
BIT(1)(MySQL-5.0 新引入) BIT java.lang.Boolean
BIT(大于 1) (MySQL-5.0 新引入) BIT byte[]
TINYINT TINYINT 如果 tinyInt1isBit 配置设置为 true(默认为 true),是 java.lang.Boolean,存储空间 为 1;否则是为 java.lang.Integer
BOOL, BOOLEAN TINYINT 参见 TINYINT。这些是 TINYINT(1) 另一种写法而已
SMALLINT[(M)] [UNSIGNED] SMALLINT [UNSIGNED] java.lang.Integer(不管是否无符)
MEDIUMINT[(M)] [UNSIGNED] MEDIUMINT [UNSIGNED] java.lang.Integer;无符的话是 java.lang.Long(C/J 3.1 或更早),或者 java.lang.Integer(C/J 5.0 或更晚)
INT,INTEGER[(M)] [UNSIGNED] INTEGER [UNSIGNED] java.lang.Integer;无符的话是 java.lang.Long
BIGINT[(M)] [UNSIGNED] BIGINT [UNSIGNED] java.lang.Long;无符的话是 java.math.BigInteger
FLOAT[(M,D)] FLOAT java.lang.Float
DOUBLE[(M,B)] DOUBLE java.lang.Double
DECIMAL[(M[,D])] DECIMAL java.math.BigDecimal
DATE DATE java.sql.Date
DATETIME DATETIME java.sql.Timestamp
TIMESTAMP[(M)] TIMESTAMP java.sql.Timestamp
TIME TIME java.sql.Time
YEAR[(2|4)] YEAR 如果 yearIsDateType  配置设置为 false,返回的对象类型为 java.sql.Short;如果设置为 true(默认为 true),返回的对象类型是 java.sql.Date,其具体时间是为一月一日零时零分
CHAR(M) CHAR java.lang.String(除非该列字符集设置为 BINARY,那样返回 byte[])
VARCHAR(M) [BINARY] VARCHAR java.lang.String(除非该列字符集设置为 BINARY,那样返回 byte[])
BINARY(M) BINARY byte[]
VARBINARY(M) VARBINARY byte[]
TINYBLOB TINYBLOB byte[]
TINYTEXT VARCHAR java.lang.String
BLOB BLOB byte[]
TEXT VARCHAR java.lang.String
MEDIUMBLOB MEDIUMBLOB byte[]
MEDIUMTEXT VARCHAR java.lang.String
LONGBLOB LONGBLOB byte[]
LONGTEXT VARCHAR java.lang.String
ENUM('value1','value2',...) CHAR java.lang.String
ET('value1','value2',...) CHAR java.lang.String

原文地址:https://blog.csdn.net/defonds/article/details/46681701

猜你喜欢

转载自www.cnblogs.com/zlingchao/p/9427054.html