JavaJDBC与MySQL数据类型对照

Posted yangl517

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaJDBC与MySQL数据类型对照相关的知识,希望对你有一定的参考价值。

转自 http://blog.csdn.net/codolio/article/details/6591556


mysql 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, SETjava.lang.String, java.io.InputStream, java.io.Reader, java.sql.Blob, java.sql.Clob
FLOAT, REAL, DOUBLE PRECISION, NUMERIC, DECIMAL, TINYINT, SMALLINT, MEDIUMINT, DECIMAL,   INTEGER, BIGINTjava.lang.String, java.lang.Short, java.lang.Integer, java.math.BigDecimal, java.lang.Long, java.lang.Double
DATE, TIME, DATETIME, TIMESTAMPjava.lang.String, java.sql.Date, java.sql.Timestamp
ResultSet.getObject() 方法会使用MySQL和Java数据类型之间的类型转换,并遵照如下规则:
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的转换规则
SMALLINTjava.lang.Integer
MEDIUMINT转换为java.lang.Integer类型,如果为无符号数,
那么转换为java.lang.Long(C/J 3.1或者之前版本),或者java.lang.Integer (C/J 5.0或者之后版本)
INT, INTEGERjava.lang.Integer,如果为无符号数,那么转换为java.lang.Long类型
BIGINTjava.lang.Long,如果为无符号数,那么转换为java.math.BigInteger类型
FLOATjava.lang.Float
DOUBLEjava.lang.Double
DECIMALjava.math.BigDecimal
DATEjava.sql.Date
DATETIMEjava.sql.Timestamp
TIMESTAMPjava.sql.Timestamp
TIMEjava.sql.Time
YEAR如果yearIsDateType配置属性被设置为false,那么返回的对象类型为java.sql.Short。
如果设置为true,那么会返回java.sql.Date对象,并且日期被设置为1月1日午夜
CHARjava.lang.String,除非该列的字符集为BINARY,那么将返回byte[]
VARCHARjava.lang.String,除非该列的字符集为BINARY,那么将返回byte[]
BINARYbyte[]
VARBINARYbyte[]
TINYBLOBbyte[]
TINYINTjava.lang.String
BLOBbyte[]
TEXTjava.lang.String
MEDIUMBLOBbyte[]
MEDIUMTEXTjava.lang.String
LONGBLOBbyte[]
LONGTEXTjava.lang.String
ENUM('value1','value2',...)java.lang.String
SET('value1','value2',...)java.lang.String
以上内容主要翻译自MySQL的官方文档,如有需要请参考:http://dev.mysql.com/doc/refman/5.0/en/connector-j-reference-type-conversions.html

以上是关于JavaJDBC与MySQL数据类型对照的主要内容,如果未能解决你的问题,请参考以下文章

Java MySQL数据类型对照

java mysql 数据类型对照

Java 和 MySQL 数据类型对照表

Java 和 MySQL 数据类型对照表

Java 和 MySQL 数据类型对照表

MySQL和Java数据类型对照表