Java 數據類型和 MySql 數據類型對應一覽表

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
發佈了45 篇原創文章 · 獲贊 36 · 訪問量 18萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章