本教程是针对JDK 8编写的。本页面中描述的示例和实践不利用后续版本中引入的改进,可能使用不再可用的技术。
请参阅Java语言变化以获取Java SE 9及后续版本中更新的语言特性摘要。
请参阅JDK发行说明,了解所有JDK发行版的新功能、增强功能以及已删除或弃用的选项信息。
注意:MySQL和Java DB当前不支持DISTINCT
SQL数据类型。因此,在本节中没有可用的JDBC教程示例来演示这些功能。
DISTINCT
数据类型的行为与其他高级SQL数据类型不同。它是一种基于已有内置类型的用户定义类型,在Java编程语言中没有接口映射。相反,DISTINCT
数据类型的标准映射是其底层SQL数据类型映射的Java类型。
为了说明这一点,我们先创建一个DISTINCT
数据类型,然后看如何检索、设置或更新它。假设您总是使用两个字母的缩写表示州,并希望创建一个DISTINCT
数据类型用于这些缩写。您可以使用以下SQL语句定义您的新DISTINCT
数据类型:
CREATE TYPE STATE AS CHAR(2);
一些数据库使用另一种创建DISTINCT
数据类型的语法,如下所示:
CREATE DISTINCT TYPE STATE AS CHAR(2);
如果一种语法不起作用,您可以尝试另一种语法。或者,您可以查看驱动程序的文档,了解它所期望的确切语法。
这些语句将创建一个名为STATE
的新数据类型,它可以用作列值或SQL结构类型的属性值。由于STATE
类型的值实际上是两个CHAR
类型的值,您可以使用与检索CHAR
值相同的方法来检索它,即使用getString
方法。例如,假设ResultSet rs
的第四列存储STATE
类型的值,则以下代码行检索其值:
String state = rs.getString(4);
类似地,您可以使用setString
方法将STATE
值存储到数据库中,并使用updateString
方法修改其值。