跳到主要内容

时间类型处理器

时间类型处理器位于 net.hasor.dbvisitor.types.handler.time 包中。

常见处理器

类型处理器Java 类型作用
LocalDateTimeTypeHandlerjava.time.LocalDateTime以 getObject/setObject 方式处理 LocalDateTime 数据
LocalTimeTypeHandlerjava.time.LocalTime以 getObject/setObject 方式处理 LocalTime 数据
OffsetDateTimeTypeHandlerjava.time.OffsetDateTime以 getObject/setObject 方式处理 OffsetDateTime 数据
OffsetTimeTypeHandlerjava.time.OffsetTime以 getObject/setObject 方式处理 OffsetTime 数据
SqlDateTypeHandlerjava.sql.Date以 getObject/setObject 方式处理 Date 数据
SqlTimestampTypeHandlerjava.sql.Timestamp以 getObject/setObject 方式处理 Timestamp 数据
SqlTimeTypeHandlerjava.sql.Time以 getObject/setObject 方式处理 Time 数据

使用 java.util.Date 类型

类型处理器Java 类型作用
SqlDateAsDateHandlerjava.util.Date以 getDate/setDate 方式处理 java.util.Date 数据
SqlTimeAsDateTypeHandlerjava.util.Date以 getTime/setTime 方式处理 java.util.Date 数据(日期部分会被丢弃)
SqlTimestampAsDateTypeHandlerjava.util.Date以 getTimestamp/setTimestamp 方式处理 java.util.Date 数据

使用 java.time.Year 类型

类型处理器Java 类型作用
IntegerAsYearTypeHandlerjava.time.Year读写一个数字表示年份
StringAsYearTypeHandlerjava.time.Year读写一个字符串形式的数字表示年份
SqlTimestampAsYearTypeHandlerjava.time.Year以 getTimestamp/setTimestamp 方式处理 Year 数据(月份/日期/时间 在读写时会被丢弃)

使用 java.time.YearMonth 类型

类型处理器Java 类型作用
IntegerAsYearMonthTypeHandlerjava.time.YearMonth读写一个数字末尾 2 位表示月份,其余表示年份。不足 2 位数的按照月份处理。如果为 0 表示 0000-01
StringAsYearMonthTypeHandlerjava.time.YearMonth格式为 “yyyy-MM” 的字符串
SqlTimestampAsYearMonthTypeHandlerjava.time.YearMonth以 getTimestamp/setTimestamp 方式处理 YearMonth 数据(日期/时间 在读写时会被丢弃)

使用 java.time.Month 类型

类型处理器Java 类型作用
IntegerAsMonthTypeHandlerjava.time.Month读写一个 1 ~ 12 之间的数字表示一个月份
StringAsMonthTypeHandlerjava.time.Month字符串形式的数字表示月份,值范围为 1 ~ 12
SqlTimestampAsMonthTypeHandlerjava.time.Month以 getTimestamp/setTimestamp 方式处理 Month 数据(年份/日期/时间 在读写时会被丢弃)

使用 java.time.MonthDay 类型

类型处理器Java 类型作用
IntegerAsMonthDayTypeHandlerjava.time.MonthDay读写 4 个长度的数字,其中前 2 位数字表示月份,后 2 位数字表示日期
StringAsMonthDayTypeHandlerjava.time.MonthDay格式为 “01-03” 的字符串
SqlTimestampAsMonthDayTypeHandlerjava.time.MonthDay以 getTimestamp/setTimestamp 方式处理 MonthDay 数据(年份/时间 在读写时会被丢弃)

类型转换

类型处理器Java 类型作用
SqlDateAsDateHandlerjava.util.Date以 getDate/setDate 方式处理 java.util.Date 数据
SqlTimeAsDateTypeHandlerjava.util.Date以 getTime/setTime 方式处理 java.util.Date 数据(日期部分会被丢弃)
SqlTimestampAsDateTypeHandlerjava.util.Date以 getTimestamp/setTimestamp 方式处理 java.util.Date 数据
SqlTimestampAsLocalDateTimeTypeHandlerjava.time.LocalDateTime以 getTimestamp/setTimestamp 方式处理 LocalDateTime 类型读写
SqlTimestampAsLocalDateTypeHandlerjava.time.LocalDate以 getTimestamp/setTimestamp 方式处理 LocalDate 类型读写,缺失的时间信息使用 00:00 补充
SqlTimestampAsLocalTimeTypeHandlerjava.time.LocalTime以 getTimestamp/setTimestamp 方式处理 LocalTime 类型读写,缺失的时间信息使用 0000-01-01 补充
LocalDateTimeAsLocalTimeTypeHandlerjava.time.LocalTime以 getObject/setObject 方式处理 LocalDateTime 数据,Handler 会自动处理 LocalDateTime 到 LocalTime 的转换,缺失的日期使用 0000-01-01 补充
JapaneseDateAsSqlDateTypeHandlerjava.time.chrono.JapaneseDate以 getDate/setDate 方式处理 JapaneseDate 数据
LocalDateTimeAsLocalDateTypeHandlerjava.time.LocalDate以 getObject/setObject 方式处理 LocalDateTime 数据,并自动处理 LocalDateTime 和 LocalDate 之间的类型转换,缺失的时间信息使用 00:00 补充。
OffsetDateTimeAsZonedDateTimeTypeHandlerjava.time.ZonedDateTime以 getObject/setObject 方式处理 OffsetDateTime 数据,并自动处理 OffsetDateTime 和 ZonedDateTime 之间的类型转换
SqlTimestampAsInstantTypeHandlerjava.time.Instant以 getTimestamp/setTimestamp 方式处理 Instant 数据

自动时区转换

自动时区转换,时区的写入和读取会转换为 UTC。

类型处理器Java 类型作用
SqlTimestampAsUTCOffsetDateTimeTypeHandlerjava.time.OffsetDateTime自动时区转换,使用时区 OffsetDateTime 类型读写 Timestamp 数据
SqlTimestampAsUTCOffsetTimeTypeHandlerjava.time.OffsetTime自动时区转换,使用时区 OffsetTime 类型读写 Timestamp 数据