使用 DISTINCT 数据类型

注意 :MySQL 和 Java DB 当前不支持DISTINCT SQL 数据类型。因此,没有 JDBC 教程示例可用来演示本节中描述的功能。

DISTINCT数据类型的行为与其他高级 SQL 数据类型不同。它是一种基于现有内置类型之一的用户定义类型,因此没有interface作为其在 Java 编程语言中的 Map。相反,DISTINCT数据类型的标准 Map 是其基础 SQL 数据类型 Map 到的 Java 类型。

为了说明,创建一个DISTINCT数据类型,然后查看如何检索,设置或更新它。假设您始终对状态使用两个字母的缩写,并想创建一个DISTINCT数据类型以用于这些缩写。您可以使用以下 SQL 语句定义新的DISTINCT数据类型:

CREATE TYPE STATE AS CHAR(2);

某些数据库使用替代语法创建DISTINCT数据类型,如下面的代码行所示:

CREATE DISTINCT TYPE STATE AS CHAR(2);

如果一种语法不起作用,则可以try另一种。另外,您可以查看驱动程序的文档以查看其期望的确切语法。

这些语句创建一个新的数据类型STATE,它可用作列值或用作 SQL 结构化类型的属性的值。因为类型STATE的值实际上是两个CHAR类型的值,所以您将使用与检索CHAR值(即getString)相同的方法来检索它。例如,假设ResultSet rs的第四列存储的是STATE类型的值,则以下代码行将检索其值:

String state = rs.getString(4);

同样,您将使用方法setString在数据库中存储STATE值,并使用方法updateString修改其值。