MySQL 5.1參考手冊(摘錄)

26.3.3.3. Java,JDBC和MySQL類型

MySQL Connector/J在處理MySQL數據類型和Java數據類型的轉換處理方面十分靈活。

儘管可能會出現舍入、溢出或精度損失,當在通常情況下,能夠將任何MySQL數據類型轉換爲java.lang.String,並能將任何數值類型轉換爲Java數值類型。

從Connector/J 3.1.0開始,按照JDBC規範的要求,JDBC驅動程序將發出警告或拋出DataTruncation異常,除非通過使用“jdbcCompliantTruncation”屬性並將其設爲“假”,對連接進行相應配置取消了前述要求。

在下面的表格中,列出能可靠工作的轉換:

表26.2. 轉換表

下述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

註釋:

與希望轉換的MySQL數據類型相比,如果選擇了精度較低的Java數值類型,可能會出現舍入、溢出或精度損失。

DATE, TIME, DATETIME, TIMESTAMP

java.lang.String, java.sql.Date, java.sql.Timestamp

在MySQL類型和Java類型之間,ResultSet.getObject()方法採用了下述類型轉換方式,在可能的情況下遵從JDBC規範:

 

表26.3. 用於ResultSet.getObject()的MySQL類型和Java類型

MySQL類型名稱

Java類返回

BIT(1) (new in MySQL-5.0)

java.lang.Boolean

BIT( > 1) (new in MySQL-5.0)

byte[]

TINYINT

java.lang.Boolean,如果將配置屬性tinyInt1isBit”設爲“真”(默認值),並將存儲大小設爲“1”;或java.lang.Integer,如果不是的話。

BOOL , BOOLEAN

請參見上面的TINYINT,它們目前是TINYINT(1)的別名。

SMALLINT[(M)] [UNSIGNED]

java.lang.Integer(無論是否爲UNSIGNED

MEDIUMINT[(M)] [UNSIGNED]

java.lang.Integer(無論是否爲UNSIGNED

INT,INTEGER[(M)] [UNSIGNED]

java.lang.Integer,如果是UNSIGNEDjava.lang.Long

BIGINT[(M)] [UNSIGNED]

java.lang.Long,如果是UNSIGNEDjava.math.BigInteger

FLOAT[(M,D)]

java.lang.Float

DOUBLE[(M,B)]

java.lang.Double

DECIMAL[(M[,D])]

java.math.BigDecimal

DATE

java.sql.Date

DATETIME

java.sql.Timestamp

TIMESTAMP[(M)]

java.sql.Timestamp

TIME

java.sql.Time

YEAR[(2|4)]

java.sql.Date(日期設爲21日晚上2點)

CHAR(M)

java.lang.String(除非列的字符集是BINARY),然後返回字節[]

VARCHAR(M) [BINARY]

java.lang.String(除非列的字符集是BINARY),然後返回字節[]

BINARY(M)

byte[]

VARBINARY(M)

byte[]

TINYBLOB

byte[]

TINYTEXT

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

 

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