MyBatis Java 和 資料庫 資料型別對應表

Yfeil發表於2024-03-07

型別處理器(typeHandlers)

MyBatis 在設定預處理語句(PreparedStatement)中的引數或從結果集中取出一個值時, 都會用型別處理器將獲取到的值以合適的方式轉換成 Java 型別。下表描述了一些預設的型別處理器。

提示 從 3.4.5 開始,MyBatis 預設支援 JSR-310(日期和時間 API) 。

型別處理器 Java 型別 JDBC 型別
BooleanTypeHandler java.lang.Boolean, boolean 資料庫相容的 BOOLEAN
ByteTypeHandler java.lang.Byte, byte 資料庫相容的 NUMERICBYTE
ShortTypeHandler java.lang.Short, short 資料庫相容的 NUMERICSMALLINT
IntegerTypeHandler java.lang.Integer, int 資料庫相容的 NUMERICINTEGER
LongTypeHandler java.lang.Long, long 資料庫相容的 NUMERICBIGINT
FloatTypeHandler java.lang.Float, float 資料庫相容的 NUMERICFLOAT
DoubleTypeHandler java.lang.Double, double 資料庫相容的 NUMERICDOUBLE
BigDecimalTypeHandler java.math.BigDecimal 資料庫相容的 NUMERICDECIMAL
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 任何相容的 NUMERICDOUBLE 型別,用來儲存列舉的序數值(而不是名稱)。
SqlxmlTypeHandler java.lang.String SQLXML
InstantTypeHandler java.time.Instant TIMESTAMP
LocalDateTimeTypeHandler java.time.LocalDateTime TIMESTAMP
LocalDateTypeHandler java.time.LocalDate DATE
LocalTimeTypeHandler java.time.LocalTime TIME
OffsetDateTimeTypeHandler java.time.OffsetDateTime TIMESTAMP
OffsetTimeTypeHandler java.time.OffsetTime TIME
ZonedDateTimeTypeHandler java.time.ZonedDateTime TIMESTAMP
YearTypeHandler java.time.Year INTEGER
MonthTypeHandler java.time.Month INTEGER
YearMonthTypeHandler java.time.YearMonth VARCHARLONGVARCHAR
JapaneseDateTypeHandler java.time.chrono.JapaneseDate DATE

參考資料:官方文件

相關文章