Java 資料型別和 MySql 資料型別對應一覽表

bingguang1993發表於2018-03-16
MySQL Connector/J 對於 MySql 資料型別和 Java 資料型別之間的轉換是很靈活的。
一般來講,任何 MySql 資料型別都可以被轉換為一個 java.lang.String,任何 MySql 數字型別都可以被轉換為任何一種 Java 數字型別(當然這樣也可能出一些四捨五入,溢位,精度丟失之類的問題)。
轉換表
MySql 資料型別可以被轉換成的 Java 型別
CHAR, VARCHAR, BLOB, TEXT, ENUM, and SETjava.lang.String, java.io.InputStream, java.io.Reader, java.sql.Blob, java.sql.Clob
FLOAT, REAL, DOUBLE PRECISION, NUMERIC, DECIMAL, TINYINT, SMALLINT, MEDIUMINT, INTEGER, BIGINTjava.lang.String, java.lang.Short, java.lang.Integer, java.lang.Long, java.lang.Double, java.math.BigDecimal
DATE, TIME, DATETIME, TIMESTAMPjava.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 新引入)BITjava.lang.Boolean
BIT(大於 1) (MySQL-5.0 新引入)BITbyte[]
TINYINTTINYINT如果 tinyInt1isBit 配置設定為 true(預設為 true),是 java.lang.Boolean,儲存空間 為 1;否則是為 java.lang.Integer
BOOL, BOOLEANTINYINT參見 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)]FLOATjava.lang.Float
DOUBLE[(M,B)]DOUBLEjava.lang.Double
DECIMAL[(M[,D])]DECIMALjava.math.BigDecimal
DATEDATEjava.sql.Date
DATETIMEDATETIMEjava.sql.Timestamp
TIMESTAMP[(M)]TIMESTAMPjava.sql.Timestamp
TIMETIMEjava.sql.Time
YEAR[(2|4)]YEAR如果 yearIsDateType  配置設定為 false,返回的物件型別為 java.sql.Short;如果設定為 true(預設為 true),返回的物件型別是 java.sql.Date,其具體時間是為一月一日零時零分
CHAR(M)CHARjava.lang.String(除非該列字符集設定為 BINARY,那樣返回 byte[])
VARCHAR(M) [BINARY]VARCHARjava.lang.String(除非該列字符集設定為 BINARY,那樣返回 byte[])
BINARY(M)BINARYbyte[]
VARBINARY(M)VARBINARYbyte[]
TINYBLOBTINYBLOBbyte[]
TINYTEXTVARCHARjava.lang.String
BLOBBLOBbyte[]
TEXTVARCHARjava.lang.String
MEDIUMBLOBMEDIUMBLOBbyte[]
MEDIUMTEXTVARCHARjava.lang.String
LONGBLOBLONGBLOBbyte[]
LONGTEXTVARCHARjava.lang.String
ENUM('value1','value2',...) CHARjava.lang.String
ET('value1','value2',...)CHARjava.lang.String

相關文章