别人那里抄的 https://blog.csdn.net/defonds/article/details/46681701
chatgpt转换了一下格式
MySQL Connector/J 数据类型转换
MySQL Connector/J 对于 MySQL 数据类型和 Java 数据类型之间的转换是非常灵活的。一般来讲,任何 MySQL 数据类型都可以被转换为一个 java.lang.String
,任何 MySQL 数字类型都可以被转换为任何一种 Java 数字类型,尽管可能存在四舍五入、溢出或精度丢失等问题。
转换表
以下是MySQL数据类型与可以转换成的Java类型之间的对应关系:
MySQL 数据类型 | 可以被转换成的 Java 类型 |
---|---|
CHAR, VARCHAR, BLOB, TEXT, ENUM, 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() 方法转换表
ResultSet.getObject()
方法遵循 JDBC 规范,进行 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 |
SET(‘value1’,‘value2’,…) | CHAR | java.lang.String |