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