Oracleデータ型とMyBatisのJDBTtypeとMyBatisのデフォルト別名

8579 ワード

Oracleデータ型とMyBatisのJDBTtype
SQLデータ型
JDBCタイプコード
標準のJavaタイプ
Oracle拡張Javaタイプ
 
1.0標準のJDBCタイプ:
 
  CHAR java.sql.Types.CHAR java.lang.String oracle.sql.CHAR VARCHAR2 java.sql.Types.VARCHAR java.lang.String oracle.sql.CHAR LONG java.sql.Types.LONGVARCHAR java.lang.String oracle.sql.CHAR NUMBER java.sql.Types.NUMERIC java.math.BigDecimal oracle.sql.NUMBER NUMBER java.sql.Types.DECIMAL java.math.BigDecimal oracle.sql.NUMBER NUMBER java.sql.Types.BIT boolean oracle.sql.NUMBER NUMBER java.sql.Types.TINYINT byte oracle.sql.NUMBER NUMBER java.sql.Types.SMALLINT short oracle.sql.NUMBER NUMBER java.sql.Types.INTEGER int oracle.sql.NUMBER NUMBER java.sql.Types.BIGINT long oracle.sql.NUMBER NUMBER java.sql.Types.REAL float oracle.sql.NUMBER NUMBER java.sql.Types.FLOAT double oracle.sql.NUMBER NUMBER java.sql.Types.DOUBLE double oracle.sql.NUMBER RAW java.sql.Types.BINARY byte[] oracle.sql.RAW RAW java.sql.Types.VARBINARY byte[] oracle.sql.RAW LONGRAW java.sql.Types.LONGVARBINARY byte[] oracle.sql.RAW DATE java.sql.Types.DATE java.sql.Date oracle.sql.DATE DATE java.sql.Types.TIME java.sql.Time oracle.sql.DATE TIMESTAMP java.sql.Types.TIMESTAMP javal.sql.Timestamp oracle.sql.TIMESTAMP
 
2.0標準のJDBCタイプ:
 
  BLOB java.sql.Types.BLOB java.sql.Blob oracle.sql.BLOB CLOB java.sql.Types.CLOB java.sql.Clob oracle.sql.CLOB
ユーザー定義オブジェクトjava.sql.Types.STRUCT java.sql.Struct oracle.sql.STRUCT
ユーザー定義の参照java.sql.Types.REF java.sql.Ref oracle.sql.REF
ユーザー定義の集合java.sql.Types.ARRAY java.sql.Array oracle.sql.ARRAY
 
Oracle拡張:
 
  BFILE oracle.jdbc.OracleTypes.BFILE
N/A oracle.sql.BFILE ROWID oracle.jdbc.OracleTypes.ROWID
N/A oracle.sql.ROWID REF CURSOR oracle.jdbc.OracleTypes.CURSOR java.sql.ResultSet oracle.jdbc.OracleResultSet TIMESTAMP oracle.jdbc.OracleTypes.TIMESTAMP java.sql.Timestamp oracle.sql.TIMESTAMP TIMESTAMP WITH TIME ZONE oracle.jdbc.OracleTypes.TIMESTAMPTZ java.sql.Timestamp oracle.sql.TIMESTAMPTZ TIMESTAMP WITH LOCAL TIME ZONE oracle.jdbc.OracleTypes.TIMESTAMPLTZ java.sql.Timestamp oracle.sql.TIMESTAMPLTZ
MyBatis-Type Handlersデフォルトでサポートされているタイプのプロセッサ
タイププロセッサ
Javaタイプ
JDBCタイプ
BooleanTypeHandler
java.lang.Boolean,boolean
データベース互換性 BOOLEAN
ByteTypeHandler
java.lang.Byte, byte
データベース互換性 NUMERIC または BYTE
ShortTypeHandler
java.lang.Short, short
データベース互換性 NUMERIC または SHORT INTEGER
IntegerTypeHandler
java.lang.Integer, int
データベース互換性 NUMERIC または INTEGER
LongTypeHandler
java.lang.Long, long
データベース互換性 NUMERIC または LONG INTEGER
FloatTypeHandler
java.lang.Float, float
データベース互換性 NUMERIC または FLOAT
DoubleTypeHandler
java.lang.Double,double
データベース互換性 NUMERIC または DOUBLE
BigDecimalTypeHandler
java.math.BigDecimal
データベース互換性 NUMERIC または DECIMAL
StringTypeHandler
java.lang.String
CHAR, VARCHAR
ClobReaderTypeHandler
java.io.Reader
-
ClobTypeHandler
java.lang.String
CLOB, LONGVARCHAR
NStringTypeHandler
java.lang.String
NVARCHAR, NCHAR
NClobTypeHandler
java.lang.String
NCLOB
BlobInputStreamTypeHandler
java.io.InputStream
-
ByteArrayTypeHandler
byte[]
データベース互換バイトストリームタイプ
BlobTypeHandler
byte[]
BLOB, LONGVARBINARY
DateTypeHandler
java.util.Date
TIMESTAMP
DateOnlyTypeHandler
java.util.Date
DATE
TimeOnlyTypeHandler
java.util.Date
TIME
SqlTimestampTypeHandler
java.sql.Timestamp
TIMESTAMP
SqlDateTypeHandler
java.sql.Date
DATE
SqlTimeTypeHandler
java.sql.Time
TIME
ObjectTypeHandler
Any
OTHER またはタイプが指定されていません
EnumTypeHandler
Enumeration Type
VARCHAR-インデックスではなく列挙された名前を格納する互換性のある文字列タイプ
EnumOrdinalTypeHandler
Enumeration Type
任意の互換性 NUMERIC または DOUBLE タイプ、名前ではなく列挙されたインデックスを格納
MyBatisのデフォルトの別名
public class TypeAliasRegistry {

  private final Map> TYPE_ALIASES = new HashMap>();

  public TypeAliasRegistry() {
    registerAlias("string", String.class);

    registerAlias("byte", Byte.class);
    registerAlias("long", Long.class);
    registerAlias("short", Short.class);
    registerAlias("int", Integer.class);
    registerAlias("integer", Integer.class);
    registerAlias("double", Double.class);
    registerAlias("float", Float.class);
    registerAlias("boolean", Boolean.class);

    registerAlias("byte[]", Byte[].class);
    registerAlias("long[]", Long[].class);
    registerAlias("short[]", Short[].class);
    registerAlias("int[]", Integer[].class);
    registerAlias("integer[]", Integer[].class);
    registerAlias("double[]", Double[].class);
    registerAlias("float[]", Float[].class);
    registerAlias("boolean[]", Boolean[].class);

    registerAlias("_byte", byte.class);
    registerAlias("_long", long.class);
    registerAlias("_short", short.class);
    registerAlias("_int", int.class);
    registerAlias("_integer", int.class);
    registerAlias("_double", double.class);
    registerAlias("_float", float.class);
    registerAlias("_boolean", boolean.class);

    registerAlias("_byte[]", byte[].class);
    registerAlias("_long[]", long[].class);
    registerAlias("_short[]", short[].class);
    registerAlias("_int[]", int[].class);
    registerAlias("_integer[]", int[].class);
    registerAlias("_double[]", double[].class);
    registerAlias("_float[]", float[].class);
    registerAlias("_boolean[]", boolean[].class);

    registerAlias("date", Date.class);
    registerAlias("decimal", BigDecimal.class);
    registerAlias("bigdecimal", BigDecimal.class);
    registerAlias("biginteger", BigInteger.class);
    registerAlias("object", Object.class);

    registerAlias("date[]", Date[].class);
    registerAlias("decimal[]", BigDecimal[].class);
    registerAlias("bigdecimal[]", BigDecimal[].class);
    registerAlias("biginteger[]", BigInteger[].class);
    registerAlias("object[]", Object[].class);

    registerAlias("map", Map.class);
    registerAlias("hashmap", HashMap.class);
    registerAlias("list", List.class);
    registerAlias("arraylist", ArrayList.class);
    registerAlias("collection", Collection.class);
    registerAlias("iterator", Iterator.class);

    registerAlias("ResultSet", ResultSet.class);
  }