JavaJDBC与MySQL数据类型对照
Posted yangl517
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaJDBC与MySQL数据类型对照相关的知识,希望对你有一定的参考价值。
转自 http://blog.csdn.net/codolio/article/details/6591556mysql Connector/J能够方便地处理MySQL数据类型和Java数据类型之间的转换。一般来说,任何MySQL数据类型均可以被转换为 java.lang.String类型,并且任何数字类型可以被转换成任意的Java数字类型,虽然在某些情况下会出现取舍、溢出或者精度丢失的情况。
从Connector/J 3.1.0开始,JDBC驱动程序能够遵照JDBC规范适时给出警告信息或者抛出DataTruncation异常,除非你通过使用jdbcCompliantTruncation属性来显式配置连接并将其设置为false。
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, DECIMAL, | java.lang.String, java.lang.Short, java.lang.Integer, java.math.BigDecimal, java.lang.Long, java.lang.Double |
DATE, TIME, DATETIME, TIMESTAMP | java.lang.String, java.sql.Date, java.sql.Timestamp |
MySQL数据类型 | 返回的Java类型 |
BIT(1) | java.lang.Boolean |
BIT(>1) | byte[] |
TINYINT | 如果tinyInt1isBit配置属性被设置成true并且存储大小为1时, 那么转换成java.lang.Boolean,否则转换为java.lang.Integer |
BOOL, BOOLEAN | 等同于TINYINT(1)的情况,请参照TINYINT的转换规则 |
SMALLINT | java.lang.Integer |
MEDIUMINT | 转换为java.lang.Integer类型,如果为无符号数, 那么转换为java.lang.Long(C/J 3.1或者之前版本),或者java.lang.Integer (C/J 5.0或者之后版本) |
INT, INTEGER | java.lang.Integer,如果为无符号数,那么转换为java.lang.Long类型 |
BIGINT | java.lang.Long,如果为无符号数,那么转换为java.math.BigInteger类型 |
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 |
YEAR | 如果yearIsDateType配置属性被设置为false,那么返回的对象类型为java.sql.Short。 如果设置为true,那么会返回java.sql.Date对象,并且日期被设置为1月1日午夜 |
CHAR | java.lang.String,除非该列的字符集为BINARY,那么将返回byte[] |
VARCHAR | java.lang.String,除非该列的字符集为BINARY,那么将返回byte[] |
BINARY | byte[] |
VARBINARY | byte[] |
TINYBLOB | byte[] |
TINYINT | java.lang.String |
BLOB | byte[] |
TEXT | java.lang.String |
MEDIUMBLOB | byte[] |
MEDIUMTEXT | java.lang.String |
LONGBLOB | byte[] |
LONGTEXT | java.lang.String |
ENUM('value1','value2',...) | java.lang.String |
SET('value1','value2',...) | java.lang.String |
以上是关于JavaJDBC与MySQL数据类型对照的主要内容,如果未能解决你的问题,请参考以下文章