mybatis類型處理器JSR310標準詳解
類型處理器JSR310標準
首先什麼是JSR310標準,其實就是新出的一些日期類型等的標準在,mybatisplus3.4之後會自己識別,但是在之前的版本就需要手動進行引入。
<dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-typehandlers-jsr310</artifactId> <version>1.0.1</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.datatype</groupId> <artifactId>jackson-datatype-jsr310</artifactId> <version>2.9.2</version> </dependency>
引入之後,mybatis中的日期類型關系就可以使用JSR310的類型進行對應瞭,
LocalDate
映射數據庫中的date類型LocalTime
來映射數據庫中的time類型LocalDateTime
字段來映射數據庫中的datetime類型
使Jackson和Mybatis支持JSR310標準
1、首先要確保Jackson和Mybatis正確地整合進項目瞭
2、添加額外的依賴
<dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-typehandlers-jsr310</artifactId> <version>1.0.1</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.datatype</groupId> <artifactId>jackson-datatype-jsr310</artifactId> <version>2.9.2</version> </dependency>
3、至此,Po類中的域,可以用LocalDate來映射數據庫中的date類型字段瞭,可以用LocalTime來映射數據庫中的time類型字段瞭,可以用LocalDateTime字段來映射數據庫中的datetime類型字段瞭
4、為LocalDate/LocalTime/LocalDateTime類型的私用域添加@JsonFormat主鍵,如下所示
public class TimeEntity { private Integer id; @JsonFormat(pattern = "yyyy-MM-dd") private LocalDate date_field; @JsonFormat(pattern = "HH:mm:ss") private LocalTime time_field; @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private LocalDateTime datetime_field; // Getters and setters ignore. }
至此,這些私有域會被轉化成一個類似 'time_field' : '12:01:00'這樣格式,而不是'time_field' : {…..}這樣的格式
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。
推薦閱讀:
- Java前後端時間格式的轉化方式
- java日期時間格式化@JsonFormat與@DateTimeFormat的使用
- springboot2中使用@JsonFormat註解不生效的解決
- Java 8 Time Api 使用方法技巧
- Springboot 格式化LocalDateTime的方法