概述
在使用Mybatis这种半自动化的框架中,我们都知道,实体Entity的属性与数据库中表的字段存在着一种映射关系,我们以MySql举例,比如表中varchar与java中String的映射,date与java.sql.Date,time与java.sql.Time,datetime与java.util.Date等之间的这种映射关系。而在JDK8中,目前是没有直接提供与LocalDate这种相关联的映射的。如果直接使用,会提示类似错误:
No typehandler found for property create
不过,Mybatis也提供了一个间接的方式来实现这种转换。
也就是说,我们直接在pom.xml中添加以下依赖就可以完成相应的转换:
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-typehandlers-jsr310</artifactId>
<version>1.0.2</version>
</dependency>
实例
再多说一点,Mysql中与日期时间相关的类型有如下5种:time, date, datetime, timestamp, year,所以我们基于这几种类型进行如下两个简单的例子:
、新建表结构:
2、对应的实体:Student(JDK8之前),Student2(JDK8之后),注意其中的参数类型;
import java.sql.Date;
import java.sql.Time;
import java.sql.Timestamp;
/**
* Student实体
*
* @author zhangwugui
* @since 2018/1/24 17:22
*/
public class Student {
private Integer id;
private String name;
private Integer age;
private Date create;
private java.util.Date update;
private Time modify;
private Timestamp stamp;
private Integer year;
// get, set方法省略
@Override
public String toString() {
return "Student{" +
"id=" + id +
", name='" + name + '\''