当前位置: 首页 > 面试题库 >

Java 8 LocalDate与Mybatis的映射

阳勇
2023-03-14
问题内容

我正在使用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>

应该会有所帮助。



 类似资料:
  • 主要内容:XML实现映射器,注解实现映射器,MyBatis 映射器的主要元素映射器是 MyBatis 中最重要的文件,文件中包含一组 SQL 语句(例如查询、添加、删除、修改),这些语句称为映射语句或映射 SQL 语句。 映射器由 Java 接口和 XML 文件(或注解)共同组成,它的作用如下。 定义参数类型 配置缓存 提供 SQL 语句和动态 SQL 定义查询结果和 POJO 的映射关系 映射器有以下两种实现方式。 通过 XML 文件方式实现,比如我们在 mybatis

  • 在mapper中,我调用了一个proc'xyz',它返回所查询的ProcessType表的行列表的光标。

  • 我的要求是存储所有日期 这是不是正确的 如果没有,我应该回到使用好的旧(或遗留?) 或者我应该使用Java 8的?如果使用,是否可以只存储日期部分而不存储时间? 数据库是MySQL

  • 本文向大家介绍MyBatis 引入映射器的方法,包括了MyBatis 引入映射器的方法的使用技巧和注意事项,需要的朋友参考一下 mybatis引入映射器分为三种方式 1. 文件路径引入映射器 用包名引入映射器 用类注册引入映射器 用userMapper引入映射器 总结 以上所述是小编给大家介绍的MyBatis 引入映射器的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的

  • 我对使用mybatis作为ORM工具相当满意。但是我不能理解MyBatis中参数映射是如何工作的。 假设我定义了一个mybatis映射器接口,该接口有一个获取用户详细信息的方法。 我定义了我的类,其中包含select。

  • 我使用Java.time.LocalDate(Java8)来表示Java类中的一些成员字段。 我也在使用mybatis,与我的数据库交互。 这是因为mybatis目前没有“timestamp”(SQL Server)到java.time的映射吗? 我应该如何使用java.time.LocalDate来映射MyBatis?