深入理解MyBatis配置:typeHandlers类型处理器

无论是MyBatis在预处理语句(preparedStatement)中设置一个参数时,还是从结果集中取出一个值时,都会用类型处理器将获取的值以合适的方式转换成Java类型:
类型处理器
Java类型
JDBC类型
BooleanTypeHandler
java.lang.Boolean,boolean
数据库兼容的BOOLEAN
ByteTypeHandler
java.lang.Byte,byte
数据库兼容NUMERIC或BYTE
shortTypeHandler
java.lang.Short,short
数据库兼容NUMERIC或SHORT INTGER
IntegerTypeHandler
java.lang.Integer,int
数据库兼容NUMERIC或INTEGER
LongTypeHandler
java.lang.Float,float
数据库兼容NUMERIC或FLOAT
DoubleTypeHandler
java.lang.Double,double
数据库兼容NUMERIC或DOUBLE
BigDecimalTypeHandler
java.lang.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类型,存储枚举的索引