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。

推薦閱讀: