/* |
|
* 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; |
|
/** |
|
* <P>Defines the constants that are used to identify generic |
|
* SQL types, called JDBC types. |
|
* |
|
* @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."); |
|
} |
|
} |