时间类型处理器
时间类型处理器位于 net.hasor.dbvisitor.types.handler.time 包中。
常见处理器
| 类型处理器 | Java 类型 | 作用 |
|---|---|---|
| LocalDateTimeTypeHandler | java.time.LocalDateTime | 以 getObject/setObject 方式处理 LocalDateTime 数据 |
| LocalTimeTypeHandler | java.time.LocalTime | 以 getObject/setObject 方式处理 LocalTime 数据 |
| OffsetDateTimeTypeHandler | java.time.OffsetDateTime | 以 getObject/setObject 方式处理 OffsetDateTime 数据 |
| OffsetTimeTypeHandler | java.time.OffsetTime | 以 getObject/setObject 方式处理 OffsetTime 数据 |
| SqlDateTypeHandler | java.sql.Date | 以 getObject/setObject 方式处理 Date 数据 |
| SqlTimestampTypeHandler | java.sql.Timestamp | 以 getObject/setObject 方式处理 Timestamp 数据 |
| SqlTimeTypeHandler | java.sql.Time | 以 getObject/setObject 方 式处理 Time 数据 |
使用 java.util.Date 类型
| 类型处理器 | Java 类型 | 作用 |
|---|---|---|
| SqlDateAsDateHandler | java.util.Date | 以 getDate/setDate 方式处理 java.util.Date 数据 |
| SqlTimeAsDateTypeHandler | java.util.Date | 以 getTime/setTime 方式处理 java.util.Date 数据(日期部分会被丢弃) |
| SqlTimestampAsDateTypeHandler | java.util.Date | 以 getTimestamp/setTimestamp 方式处理 java.util.Date 数据 |
使用 java.time.Year 类型
| 类型处理器 | Java 类型 | 作用 |
|---|---|---|
| IntegerAsYearTypeHandler | java.time.Year | 读写一个数字表示年份 |
| StringAsYearTypeHandler | java.time.Year | 读写一个字符串形式的数字表示年份 |
| SqlTimestampAsYearTypeHandler | java.time.Year | 以 getTimestamp/setTimestamp 方式处理 Year 数据(月份/日期/时间 在读写时会被丢弃) |
使用 java.time.YearMonth 类型
| 类型处理器 | Java 类型 | 作用 |
|---|---|---|
| IntegerAsYearMonthTypeHandler | java.time.YearMonth | 读写一个数字末尾 2 位表示月份,其余表示年份。不足 2 位数的按照月份处理。如果为 0 表示 0000-01 |
| StringAsYearMonthTypeHandler | java.time.YearMonth | 格式为 “yyyy-MM” 的字符串 |
| SqlTimestampAsYearMonthTypeHandler | java.time.YearMonth | 以 getTimestamp/setTimestamp 方式处理 YearMonth 数据(日期/时间 在读写时会被丢弃) |
使用 java.time.Month 类型
| 类型处理器 | Java 类型 | 作用 |
|---|---|---|
| IntegerAsMonthTypeHandler | java.time.Month | 读写一个 1 ~ 12 之间的数字表示一个月份 |
| StringAsMonthTypeHandler | java.time.Month | 字符串形式的数字表示月份,值范围为 1 ~ 12 |
| SqlTimestampAsMonthTypeHandler | java.time.Month | 以 getTimestamp/setTimestamp 方式处理 Month 数据(年份/日期/时间 在读写时会被丢弃) |
使用 java.time.MonthDay 类型
| 类型处理器 | Java 类型 | 作用 |
|---|---|---|
| IntegerAsMonthDayTypeHandler | java.time.MonthDay | 读写 4 个长度的数字,其中前 2 位数字表示月份,后 2 位数字表示日期 |
| StringAsMonthDayTypeHandler | java.time.MonthDay | 格式为 “01-03” 的字符串 |
| SqlTimestampAsMonthDayTypeHandler | java.time.MonthDay | 以 getTimestamp/setTimestamp 方式处理 MonthDay 数据(年份/时间 在读写时会被丢弃) |
类型转换
| 类型处理器 | Java 类型 | 作用 |
|---|---|---|
| SqlDateAsDateHandler | java.util.Date | 以 getDate/setDate 方式处理 java.util.Date 数据 |
| SqlTimeAsDateTypeHandler | java.util.Date | 以 getTime/setTime 方式处理 java.util.Date 数据(日期部分会被丢弃) |
| SqlTimestampAsDateTypeHandler | java.util.Date | 以 getTimestamp/setTimestamp 方式处理 java.util.Date 数据 |
| SqlTimestampAsLocalDateTimeTypeHandler | java.time.LocalDateTime | 以 getTimestamp/setTimestamp 方式处理 LocalDateTime 类型读写 |
| SqlTimestampAsLocalDateTypeHandler | java.time.LocalDate | 以 getTimestamp/setTimestamp 方式处理 LocalDate 类型读写,缺失的时间信息使用 00:00 补充 |
| SqlTimestampAsLocalTimeTypeHandler | java.time.LocalTime | 以 getTimestamp/setTimestamp 方式处理 LocalTime 类型读写,缺失的时间信息使用 0000-01-01 补充 |
| LocalDateTimeAsLocalTimeTypeHandler | java.time.LocalTime | 以 getObject/setObject 方式处理 LocalDateTime 数据,Handler 会自动处理 LocalDateTime 到 LocalTime 的转换,缺失的日期使用 0000-01-01 补充 |
| JapaneseDateAsSqlDateTypeHandler | java.time.chrono.JapaneseDate | 以 getDate/setDate 方式处理 JapaneseDate 数据 |
| LocalDateTimeAsLocalDateTypeHandler | java.time.LocalDate | 以 getObject/setObject 方式处理 LocalDateTime 数据,并自动处理 LocalDateTime 和 LocalDate 之间的类型转换,缺失的时间信息使用 00:00 补充。 |
| OffsetDateTimeAsZonedDateTimeTypeHandler | java.time.ZonedDateTime | 以 getObject/setObject 方式处理 OffsetDateTime 数据,并自动处理 OffsetDateTime 和 ZonedDateTime 之间的类型转换 |
| SqlTimestampAsInstantTypeHandler | java.time.Instant | 以 getTimestamp/setTimestamp 方式处理 Instant 数据 |
自动时区转换
自动时区转换,时区的写入和读取会转换为 UTC。
| 类型处理器 | Java 类型 | 作用 |
|---|---|---|
| SqlTimestampAsUTCOffsetDateTimeTypeHandler | java.time.OffsetDateTime | 自动时区转换,使用时区 OffsetDateTime 类型读写 Timestamp 数据 |
| SqlTimestampAsUTCOffsetTimeTypeHandler | java.time.OffsetTime | 自动时区转换,使用时区 OffsetTime 类型读写 Timestamp 数据 |