Java,JDBC与MySQL数据类型对照
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, 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,
INTEGER, BIGINT java.lang.String, java.lang.Short, java.lang.Integer, java.math.BigDecimaljava.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
bigdecimal转换为integer
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

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。