/*
* Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
* ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*/
package java.sql;
/**
* <P>Defines the constants that are used to identify generic
* SQL types, called JDBC types.
* <p>
* @see SQLType
* @since 1.8
*/
public enum
JDBCType implements
SQLType {
/**
* Identifies the generic SQL type {@code BIT}.
*/
BIT(
Types.
BIT),
/**
* Identifies the generic SQL type {@code TINYINT}.
*/
TINYINT(
Types.
TINYINT),
/**
* Identifies the generic SQL type {@code SMALLINT}.
*/
SMALLINT(
Types.
SMALLINT),
/**
* Identifies the generic SQL type {@code INTEGER}.
*/
INTEGER(
Types.
INTEGER),
/**
* Identifies the generic SQL type {@code BIGINT}.
*/
BIGINT(
Types.
BIGINT),
/**
* Identifies the generic SQL type {@code FLOAT}.
*/
FLOAT(
Types.
FLOAT),
/**
* Identifies the generic SQL type {@code REAL}.
*/
REAL(
Types.
REAL),
/**
* Identifies the generic SQL type {@code DOUBLE}.
*/
DOUBLE(
Types.
DOUBLE),
/**
* Identifies the generic SQL type {@code NUMERIC}.
*/
NUMERIC(
Types.
NUMERIC),
/**
* Identifies the generic SQL type {@code DECIMAL}.
*/
DECIMAL(
Types.
DECIMAL),
/**
* Identifies the generic SQL type {@code CHAR}.
*/
CHAR(
Types.
CHAR),
/**
* Identifies the generic SQL type {@code VARCHAR}.
*/
VARCHAR(
Types.
VARCHAR),
/**
* Identifies the generic SQL type {@code LONGVARCHAR}.
*/
LONGVARCHAR(
Types.
LONGVARCHAR),
/**
* Identifies the generic SQL type {@code DATE}.
*/
DATE(
Types.
DATE),
/**
* Identifies the generic SQL type {@code TIME}.
*/
TIME(
Types.
TIME),
/**
* Identifies the generic SQL type {@code TIMESTAMP}.
*/
TIMESTAMP(
Types.
TIMESTAMP),
/**
* Identifies the generic SQL type {@code BINARY}.
*/
BINARY(
Types.
BINARY),
/**
* Identifies the generic SQL type {@code VARBINARY}.
*/
VARBINARY(
Types.
VARBINARY),
/**
* Identifies the generic SQL type {@code LONGVARBINARY}.
*/
LONGVARBINARY(
Types.
LONGVARBINARY),
/**
* Identifies the generic SQL value {@code NULL}.
*/
NULL(
Types.
NULL),
/**
* Indicates that the SQL type
* is database-specific and gets mapped to a Java object that can be
* accessed via the methods getObject and setObject.
*/
OTHER(
Types.
OTHER),
/**
* Indicates that the SQL type
* is database-specific and gets mapped to a Java object that can be
* accessed via the methods getObject and setObject.
*/
JAVA_OBJECT(
Types.
JAVA_OBJECT),
/**
* Identifies the generic SQL type {@code DISTINCT}.
*/
DISTINCT(
Types.
DISTINCT),
/**
* Identifies the generic SQL type {@code STRUCT}.
*/
STRUCT(
Types.
STRUCT),
/**
* Identifies the generic SQL type {@code ARRAY}.
*/
ARRAY(
Types.
ARRAY),
/**
* Identifies the generic SQL type {@code BLOB}.
*/
BLOB(
Types.
BLOB),
/**
* Identifies the generic SQL type {@code CLOB}.
*/
CLOB(
Types.
CLOB),
/**
* Identifies the generic SQL type {@code REF}.
*/
REF(
Types.
REF),
/**
* Identifies the generic SQL type {@code DATALINK}.
*/
DATALINK(
Types.
DATALINK),
/**
* Identifies the generic SQL type {@code BOOLEAN}.
*/
BOOLEAN(
Types.
BOOLEAN),
/* JDBC 4.0 Types */
/**
* Identifies the SQL type {@code ROWID}.
*/
ROWID(
Types.
ROWID),
/**
* Identifies the generic SQL type {@code NCHAR}.
*/
NCHAR(
Types.
NCHAR),
/**
* Identifies the generic SQL type {@code NVARCHAR}.
*/
NVARCHAR(
Types.
NVARCHAR),
/**
* Identifies the generic SQL type {@code LONGNVARCHAR}.
*/
LONGNVARCHAR(
Types.
LONGNVARCHAR),
/**
* Identifies the generic SQL type {@code NCLOB}.
*/
NCLOB(
Types.
NCLOB),
/**
* Identifies the generic SQL type {@code SQLXML}.
*/
SQLXML(
Types.
SQLXML),
/* JDBC 4.2 Types */
/**
* Identifies the generic SQL type {@code REF_CURSOR}.
*/
REF_CURSOR(
Types.
REF_CURSOR),
/**
* Identifies the generic SQL type {@code TIME_WITH_TIMEZONE}.
*/
TIME_WITH_TIMEZONE(
Types.
TIME_WITH_TIMEZONE),
/**
* Identifies the generic SQL type {@code TIMESTAMP_WITH_TIMEZONE}.
*/
TIMESTAMP_WITH_TIMEZONE(
Types.
TIMESTAMP_WITH_TIMEZONE);
/**
* The Integer value for the JDBCType. It maps to a value in
* {@code Types.java}
*/
private
Integer type;
/**
* Constructor to specify the data type value from {@code Types) for
* this data type.
* @param type The value from {@code Types) for this data type
*/
JDBCType(final
Integer type) {
this.
type =
type;
}
/**
*{@inheritDoc }
* @return The name of this {@code SQLType}.
*/
public
String getName() {
return
name();
}
/**
* Returns the name of the vendor that supports this data type.
* @return The name of the vendor for this data type which is
* {@literal java.sql} for JDBCType.
*/
public
String getVendor() {
return "java.sql";
}
/**
* Returns the vendor specific type number for the data type.
* @return An Integer representing the data type. For {@code JDBCType},
* the value will be the same value as in {@code Types} for the data type.
*/
public
Integer getVendorTypeNumber() {
return
type;
}
/**
* Returns the {@code JDBCType} that corresponds to the specified
* {@code Types} value
* @param type {@code Types} value
* @return The {@code JDBCType} constant
* @throws IllegalArgumentException if this enum type has no constant with
* the specified {@code Types} value
* @see Types
*/
public static
JDBCType valueOf(int
type) {
for(
JDBCType sqlType :
JDBCType.class.
getEnumConstants()) {
if(
type ==
sqlType.
type)
return
sqlType;
}
throw new
IllegalArgumentException("Type:" +
type + " is not a valid "
+ "Types.java value.");
}
}