Java 8 LocalDate与Mybatis的映射

我正在使用java.time.LocalDate(Java 8)表示Java类中的某些成员字段。

class Test{

private LocalDate startDate;

private LocalDate endDate;

//other fields

//getters and setters

}

我还使用mybatis与我的数据库进行交互。

从数据库检索某些数据时,所有其他字段都将正确填充,但startDate和endDate字段最终将为null。

但是,如果我使用java.util.Date,例如

 private Date startDate;

private Date endDate;

当我将它们声明为java.util.Date时,可以在这两个字段(startDate和endDate)中检索到正确的值。

是因为mybatis当前没有将’Timestamp’(SQL Server)映射到java.time吗?

我应该如何使用java.time.LocalDate映射MyBatis

回答:

请在这里查看:http

:

//mybatis.github.io/mybatis-3/configuration.html#typeHandlers

要使用LocalDate和Timestamp,您必须编写一个自定义typeHandler,如下所示:

// ExampleTypeHandler.java

@MappedTypes(LocalDate.class)

public class LocalDateTypeHandler extends BaseTypeHandler<LocalDate> {

//implement all methods

}

像这样配置config.xml:

<!-- mybatis-config.xml -->

<typeHandlers>

<typeHandler handler="your.package.LocalDateTypeHandler"/>

</typeHandlers>

应该会有所帮助。

以上是 Java 8 LocalDate与Mybatis的映射 的全部内容, 来源链接: utcz.com/qa/426560.html

回到顶部