/*
 * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 *
 * This code is free software; you can redistribute it and/or modify it
 * under the terms of the GNU General Public License version 2 only, as
 * published by the Free Software Foundation.  Oracle designates this
 * particular file as subject to the "Classpath" exception as provided
 * by Oracle in the LICENSE file that accompanied this code.
 *
 * This code is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 * version 2 for more details (a copy is included in the LICENSE file that
 * accompanied this code).
 *
 * You should have received a copy of the GNU General Public License version
 * 2 along with this work; if not, write to the Free Software Foundation,
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
 *
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
 * or visit www.oracle.com if you need additional information or have any
 * questions.
 */
package java.sql;

Defines the constants that are used to identify generic SQL types, called JDBC types.

See Also:
  • SQLType
Since:1.8
/** * <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 BIT.
/** * Identifies the generic SQL type {@code BIT}. */
BIT(Types.BIT),
Identifies the generic SQL type TINYINT.
/** * Identifies the generic SQL type {@code TINYINT}. */
TINYINT(Types.TINYINT),
Identifies the generic SQL type SMALLINT.
/** * Identifies the generic SQL type {@code SMALLINT}. */
SMALLINT(Types.SMALLINT),
Identifies the generic SQL type INTEGER.
/** * Identifies the generic SQL type {@code INTEGER}. */
INTEGER(Types.INTEGER),
Identifies the generic SQL type BIGINT.
/** * Identifies the generic SQL type {@code BIGINT}. */
BIGINT(Types.BIGINT),
Identifies the generic SQL type FLOAT.
/** * Identifies the generic SQL type {@code FLOAT}. */
FLOAT(Types.FLOAT),
Identifies the generic SQL type REAL.
/** * Identifies the generic SQL type {@code REAL}. */
REAL(Types.REAL),
Identifies the generic SQL type DOUBLE.
/** * Identifies the generic SQL type {@code DOUBLE}. */
DOUBLE(Types.DOUBLE),
Identifies the generic SQL type NUMERIC.
/** * Identifies the generic SQL type {@code NUMERIC}. */
NUMERIC(Types.NUMERIC),
Identifies the generic SQL type DECIMAL.
/** * Identifies the generic SQL type {@code DECIMAL}. */
DECIMAL(Types.DECIMAL),
Identifies the generic SQL type CHAR.
/** * Identifies the generic SQL type {@code CHAR}. */
CHAR(Types.CHAR),
Identifies the generic SQL type VARCHAR.
/** * Identifies the generic SQL type {@code VARCHAR}. */
VARCHAR(Types.VARCHAR),
Identifies the generic SQL type LONGVARCHAR.
/** * Identifies the generic SQL type {@code LONGVARCHAR}. */
LONGVARCHAR(Types.LONGVARCHAR),
Identifies the generic SQL type DATE.
/** * Identifies the generic SQL type {@code DATE}. */
DATE(Types.DATE),
Identifies the generic SQL type TIME.
/** * Identifies the generic SQL type {@code TIME}. */
TIME(Types.TIME),
Identifies the generic SQL type TIMESTAMP.
/** * Identifies the generic SQL type {@code TIMESTAMP}. */
TIMESTAMP(Types.TIMESTAMP),
Identifies the generic SQL type BINARY.
/** * Identifies the generic SQL type {@code BINARY}. */
BINARY(Types.BINARY),
Identifies the generic SQL type VARBINARY.
/** * Identifies the generic SQL type {@code VARBINARY}. */
VARBINARY(Types.VARBINARY),
Identifies the generic SQL type LONGVARBINARY.
/** * Identifies the generic SQL type {@code LONGVARBINARY}. */
LONGVARBINARY(Types.LONGVARBINARY),
Identifies the generic SQL value NULL.
/** * 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.
/** * 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.
/** * 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 DISTINCT.
/** * Identifies the generic SQL type {@code DISTINCT}. */
DISTINCT(Types.DISTINCT),
Identifies the generic SQL type STRUCT.
/** * Identifies the generic SQL type {@code STRUCT}. */
STRUCT(Types.STRUCT),
Identifies the generic SQL type ARRAY.
/** * Identifies the generic SQL type {@code ARRAY}. */
ARRAY(Types.ARRAY),
Identifies the generic SQL type BLOB.
/** * Identifies the generic SQL type {@code BLOB}. */
BLOB(Types.BLOB),
Identifies the generic SQL type CLOB.
/** * Identifies the generic SQL type {@code CLOB}. */
CLOB(Types.CLOB),
Identifies the generic SQL type REF.
/** * Identifies the generic SQL type {@code REF}. */
REF(Types.REF),
Identifies the generic SQL type DATALINK.
/** * Identifies the generic SQL type {@code DATALINK}. */
DATALINK(Types.DATALINK),
Identifies the generic SQL type BOOLEAN.
/** * Identifies the generic SQL type {@code BOOLEAN}. */
BOOLEAN(Types.BOOLEAN), /* JDBC 4.0 Types */
Identifies the SQL type ROWID.
/** * Identifies the SQL type {@code ROWID}. */
ROWID(Types.ROWID),
Identifies the generic SQL type NCHAR.
/** * Identifies the generic SQL type {@code NCHAR}. */
NCHAR(Types.NCHAR),
Identifies the generic SQL type NVARCHAR.
/** * Identifies the generic SQL type {@code NVARCHAR}. */
NVARCHAR(Types.NVARCHAR),
Identifies the generic SQL type LONGNVARCHAR.
/** * Identifies the generic SQL type {@code LONGNVARCHAR}. */
LONGNVARCHAR(Types.LONGNVARCHAR),
Identifies the generic SQL type NCLOB.
/** * Identifies the generic SQL type {@code NCLOB}. */
NCLOB(Types.NCLOB),
Identifies the generic SQL type SQLXML.
/** * Identifies the generic SQL type {@code SQLXML}. */
SQLXML(Types.SQLXML), /* JDBC 4.2 Types */
Identifies the generic SQL type REF_CURSOR.
/** * Identifies the generic SQL type {@code REF_CURSOR}. */
REF_CURSOR(Types.REF_CURSOR),
Identifies the generic SQL type TIME_WITH_TIMEZONE.
/** * Identifies the generic SQL type {@code TIME_WITH_TIMEZONE}. */
TIME_WITH_TIMEZONE(Types.TIME_WITH_TIMEZONE),
Identifies the generic SQL type TIMESTAMP_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 Types.java
/** * 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 Types) for this data type. @param type The value from Types) for this data 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 }
Returns:The name of this SQLType.
/** *{@inheritDoc } * @return The name of this {@code SQLType}. */
public String getName() { return name(); }
Returns the name of the vendor that supports this data type.
Returns: The name of the vendor for this data type which is java.sql for JDBCType.
/** * 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.
Returns: An Integer representing the data type. For JDBCType, the value will be the same value as in Types for the data type.
/** * 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 JDBCType that corresponds to the specified Types value
Params:
  • type – Types value
Throws:
See Also:
Returns:The JDBCType constant
/** * 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."); } }