JdbcType.java
- /*
- * Copyright 2009-2024 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
- package org.apache.ibatis.type;
- import java.sql.Types;
- import java.util.HashMap;
- import java.util.Map;
- /**
- * @author Clinton Begin
- */
- public enum JdbcType {
- /*
- * This is added to enable basic support for the ARRAY data type - but a custom type handler is still required
- */
- ARRAY(Types.ARRAY),
- BIT(Types.BIT),
- TINYINT(Types.TINYINT),
- SMALLINT(Types.SMALLINT),
- INTEGER(Types.INTEGER),
- BIGINT(Types.BIGINT),
- FLOAT(Types.FLOAT),
- REAL(Types.REAL),
- DOUBLE(Types.DOUBLE),
- NUMERIC(Types.NUMERIC),
- DECIMAL(Types.DECIMAL),
- CHAR(Types.CHAR),
- VARCHAR(Types.VARCHAR),
- LONGVARCHAR(Types.LONGVARCHAR),
- DATE(Types.DATE),
- TIME(Types.TIME),
- TIMESTAMP(Types.TIMESTAMP),
- BINARY(Types.BINARY),
- VARBINARY(Types.VARBINARY),
- LONGVARBINARY(Types.LONGVARBINARY),
- NULL(Types.NULL),
- OTHER(Types.OTHER),
- BLOB(Types.BLOB),
- CLOB(Types.CLOB),
- BOOLEAN(Types.BOOLEAN),
- CURSOR(-10), // Oracle
- UNDEFINED(Integer.MIN_VALUE + 1000),
- NVARCHAR(Types.NVARCHAR), // JDK6
- NCHAR(Types.NCHAR), // JDK6
- NCLOB(Types.NCLOB), // JDK6
- STRUCT(Types.STRUCT),
- JAVA_OBJECT(Types.JAVA_OBJECT),
- DISTINCT(Types.DISTINCT),
- REF(Types.REF),
- DATALINK(Types.DATALINK),
- ROWID(Types.ROWID), // JDK6
- LONGNVARCHAR(Types.LONGNVARCHAR), // JDK6
- SQLXML(Types.SQLXML), // JDK6
- DATETIMEOFFSET(-155), // SQL Server 2008
- TIME_WITH_TIMEZONE(Types.TIME_WITH_TIMEZONE), // JDBC 4.2 JDK8
- TIMESTAMP_WITH_TIMEZONE(Types.TIMESTAMP_WITH_TIMEZONE); // JDBC 4.2 JDK8
- public final int TYPE_CODE;
- private static final Map<Integer, JdbcType> codeLookup = new HashMap<>();
- static {
- for (JdbcType type : JdbcType.values()) {
- codeLookup.put(type.TYPE_CODE, type);
- }
- }
- JdbcType(int code) {
- this.TYPE_CODE = code;
- }
- public static JdbcType forCode(int code) {
- return codeLookup.get(code);
- }
- }