类型处理器(typeHandlers)
MyBatis 在设置预处理语句(PreparedStatement)中的参数或从结果集中取出一个值时, 都会用类型处理器将获取到的值以合适的方式转换成 Java 类型。下表描述了一些默认的类型处理器。
提示 从 3.4.5 开始,MyBatis 默认支持 JSR-310(日期和时间 API) 。
类型处理器Java 类型JDBC 类型BooleanTypeHandlerjava.lang.Boolean, boolean数据库兼容的 BOOLEANByteTypeHandlerjava.lang.Byte, byte数据库兼容的 NUMERIC 或 BYTEShortTypeHandlerjava.lang.Short, short数据库兼容的 NUMERIC 或 SMALLINTIntegerTypeHandlerjava.lang.Integer, int数据库兼容的 NUMERIC 或 INTEGERLongTypeHandlerjava.lang.Long, long数据库兼容的 NUMERIC 或 BIGINTFloatTypeHandlerjava.lang.Float, float数据库兼容的 NUMERIC 或 FLOATDoubleTypeHandlerjava.lang.Double, double数据库兼容的 NUMERIC 或 DOUBLEBigDecimalTypeHandlerjava.math.BigDecimal数据库兼容的 NUMERIC 或 DECIMALStringTypeHandlerjava.lang.StringCHAR, VARCHARClobReaderTypeHandlerjava.io.Reader-ClobTypeHandlerjava.lang.StringCLOB, LONGVARCHARNStringTypeHandlerjava.lang.StringNVARCHAR, NCHARNClobTypeHandlerjava.lang.StringNCLOBBlobInputStreamTypeHandlerjava.io.InputStream-ByteArrayTypeHandlerbyte[]数据库兼容的字节流类型BlobTypeHandlerbyte[]BLOB, LONGVARBINARYDateTypeHandlerjava.util.DateTIMESTAMPDateOnlyTypeHandlerjava.util.DateDATETimeOnlyTypeHandlerjava.util.DateTIMESqlTimestampTypeHandlerjava.sql.TimestampTIMESTAMPSqlDateTypeHandlerjava.sql.DateDATESqlTimeTypeHandlerjava.sql.TimeTIMEObjectTypeHandlerAnyOTHER 或未指定类型EnumTypeHandlerEnumeration TypeVARCHAR 或任何兼容的字符串类型,用来存储枚举的名称(而不是索引序数值)EnumOrdinalTypeHandlerEnumeration Type任何兼容的 NUMERIC 或 DOUBLE 类型,用来存储枚举的序数值(而不是名称)。SqlxmlTypeHandlerjava.lang.StringSQLXMLInstantTypeHandlerjava.time.InstantTIMESTAMPLocalDateTimeTypeHandlerjava.time.LocalDateTimeTIMESTAMPLocalDateTypeHandlerjava.time.LocalDateDATELocalTimeTypeHandlerjava.time.LocalTimeTIMEOffsetDateTimeTypeHandlerjava.time.OffsetDateTimeTIMESTAMPOffsetTimeTypeHandlerjava.time.OffsetTimeTIMEZonedDateTimeTypeHandlerjava.time.ZonedDateTimeTIMESTAMPYearTypeHandlerjava.time.YearINTEGERMonthTypeHandlerjava.time.MonthINTEGERYearMonthTypeHandlerjava.time.YearMonthVARCHAR 或 LONGVARCHARJapaneseDateTypeHandlerjava.time.chrono.JapaneseDateDATE
|