文档首页
MySQL NDB 集群 API 开发者指南
相关文档 下载本手册

4.2.2.5 ClusterJ MySQL 和 Java 数据类型之间的映射

ClusterJ 为所有常见的 MySQL 数据库类型提供到 Java 类型的映射。基本类型的 Java 对象包装器应该映射到可为空的数据库列。

注意

由于 Java 没有原生无符号数据类型,因此如果可能,应避免在表模式中使用 UNSIGNED 列。

与 JDBC 映射的兼容性。 ClusterJ 的实现方式是在从 Java 类型到数据库的映射方面与 JDBC 驱动程序错误兼容。也就是说,如果您使用 ClusterJ 存储或检索数据,您将获得与直接使用 JDBC 驱动程序或通过 JPA 使用 JDBC 驱动程序相同的值。

下表显示了 ClusterJ 在常见 Java 数据类型和 MySQL 列类型之间使用的映射。为数字、浮点数和可变宽度类型提供了单独的表。

数字类型。 此表显示了 ClusterJ Java 数字数据类型和 MySQL 列类型之间的映射

表 4.1 ClusterJ Java 数字数据类型和 MySQL 列类型之间的映射

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)

日期和时间类型。 下表显示了 ClusterJ Java 日期和时间数据类型和 MySQL 列类型之间的映射

表 4.2 ClusterJ Java 日期和时间数据类型和 MySQL 列类型之间的映射


注意

ClusterJ 将 MySQL YEAR 类型映射到 Java short(或 java.lang.Short),如本节第一个表所示。

java.util.Date 表示日期和时间的方式类似于 Unix,但精度更高,范围更大。Unix 将时间点表示为自 Unix 纪元(1970 年 1 月 1 日)以来的秒数,而 Java 使用自纪元以来的毫秒数。

可变宽度类型。 下表显示了 ClusterJ Java 数据类型和 MySQL 可变宽度列类型之间的映射

表 4.3 此表显示了 ClusterJ Java 数据类型和 MySQL 可变宽度列类型之间的映射。

Java 数据类型 MySQL 列类型
String CHAR, VARCHAR, TEXT
byte[] BINARY, VARBINARY, BLOB

注意

从 MySQL BINARYVARBINARYBLOB 列值映射到 Java 字节数组时,不执行二进制数据转换。数据按原样呈现给应用程序。