The Java Tutorials have been written for JDK 8. Examples and practices described in this page don't take advantage of improvements introduced in later releases and might use technology no longer available.
See Java Language Changes for a summary of updated language features in Java SE 9 and subsequent releases.
See JDK Release Notes for information about new features, enhancements, and removed or deprecated options for all JDK releases.
Note: MySQL and Java DB currently do not support the DISTINCT
SQL data type. Consequently, no JDBC tutorial example is available to demonstrate the features described in this section.
The DISTINCT
data type behaves differently from the other advanced SQL data types. Being a user-defined type that is based on one of the already existing built-in types, it has no interface as its mapping in the Java programming language. Instead, the standard mapping for a DISTINCT
data type is the Java type to which its underlying SQL data type maps.
To illustrate, create a DISTINCT
data type and then see how to retrieve, set, or update it. Suppose you always use a two-letter abbreviation for a state and want to create a DISTINCT
data type to be used for these abbreviations. You could define your new DISTINCT
data type with the following SQL statement:
CREATE TYPE STATE AS CHAR(2);
Some databases use an alternate syntax for creating a DISTINCT
data type, which is shown in the following line of code:
CREATE DISTINCT TYPE STATE AS CHAR(2);
If one syntax does not work, you can try the other. Alternatively, you can check the documentation for your driver to see the exact syntax it expects.
These statements create a new data type, STATE
, which can be used as a column value or as the value for an attribute of a SQL structured type. Because a value of type STATE
is in reality a value that is two CHAR
types, you use the same method to retrieve it that you would use to retrieve a CHAR
value, that is, getString
. For example, assuming that the fourth column of ResultSet rs
stores values of type STATE
, the following line of code retrieves its value:
String state = rs.getString(4);
Similarly, you would use the method setString
to store a STATE
value in the database and the method updateString
to modify its value.