MyBatis从结果集中取出值时,会使用类型处理器将获取的值以适合的方式转换成Java类型,下表为一些默认的类型处理器。
类型处理器 | 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或 SHORT |
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、LONGVARCHAR |
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 | 任意 | 未指定类型 |
EnumTypeHandler | Enumeration Type | VARCHAR 任何兼容的字符串类型,存储枚举的名称 |
EnumOrdinalTypeHandler | Enumeration Type | 任何兼容的NUMERIC或DOUBLE类型,存储枚举的索引 |