ClusterJ 為所有常見的 MySQL 資料庫類型提供了到 Java 類型的映射。原始類型的 Java 物件包裝器應映射到可為 null 的資料庫資料行。
由於 Java 沒有原生無號資料類型,如果可能,應避免在資料表結構描述中使用 UNSIGNED
資料行。
與 JDBC 映射的相容性。 ClusterJ 的實作方式是使其在從 Java 類型到資料庫的映射方面與 JDBC 驅動程式的錯誤相容。也就是說,如果您使用 ClusterJ 儲存或檢索資料,您會取得與直接使用 JDBC 驅動程式或透過 JPA 取得相同的值。
下表顯示 ClusterJ 在常見 Java 資料類型和 MySQL 資料行類型之間使用的映射。為數值、浮點數和可變寬度類型提供了單獨的表格。
數值類型。 下表顯示 Java 數值資料類型和 MySQL 資料行類型之間的 ClusterJ 映射
表格 4.1 Java 數值資料類型和 MySQL 資料行類型之間的 ClusterJ 映射
Java 資料類型 | MySQL 資料行類型 |
---|---|
boolean 、Boolean |
BIT(1) |
byte 、Byte |
BIT(1) 到 BIT(8) 、TINYINT |
short 、Short |
BIT(1) 到 BIT(16) 、SMALLINT 、YEAR |
int 、Integer |
BIT(1) 到 BIT(32) 、INT |
long 、Long |
BIT(1) 到 BIT(64) 、BIGINT 、BIGINT UNSIGNED |
float 、Float |
FLOAT |
double 、Double |
DOUBLE |
java.math.BigDecimal |
NUMERIC 、DECIMAL |
java.math.BigInteger |
NUMERIC (精確度 = 0)、DECIMAL (精確度 = 0) |
日期和時間類型。 下表顯示 Java 日期和時間資料類型和 MySQL 資料行類型之間的 ClusterJ 映射
表格 4.2 Java 日期和時間資料類型和 MySQL 資料行類型之間的 ClusterJ 映射
Java 資料類型 | MySQL 資料行類型 |
---|---|
Java.util.Date |
DATETIME 、TIMESTAMP 、TIME 、DATE |
Java.sql.Date |
DATE |
Java.sql.Time |
TIME |
Java.sql.Timestamp |
DATETIME 、TIMESTAMP |
ClusterJ 將 MySQL YEAR
類型映射到 Java short
(或 java.lang.Short
),如本節第一個表格所示。
java.util.Date
表示日期和時間的方式類似於 Unix 的方式,但具有更高的精確度和更大的範圍。Unix 將時間點表示為自 Unix Epoch(1970 年 1 月 1 日)起經過的 32 位元帶號秒數,而 Java 使用自 Epoch 起經過的 64 位元帶號毫秒數。
可變寬度類型。 下表顯示 Java 資料類型和 MySQL 可變寬度資料行類型之間的 ClusterJ 映射