场景
在 Java 实体类中,定义时间的属性一般是Date 类型,但数据库中却是字符串类型,每次查询、新增等操作都要做类型转换,但如果使用 Mybatis 提供的自定义 TypeHandler 的功能就能完美的解决这个问题。
实体类User.java
package com.lks.domain;
import java.io.Serializable;
import java.util.Date;
/**
* Created by likaisong on 2019/2/24.
*/
public class User implements Serializable {
private int id;
private String name;
private int age;
private String county;
private Date date;
public int getId() {
return id;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public String getCounty() {
return county;
}
public void setId(int id) {
this.id = id;
}
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
public void setCounty(String county) {
this.county = county;
}
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date= date;
}
@Override
public String toString() {
return "User [id=" + id + ", name=" + name + ", age=" + age + ", county=" + county + ", date=" + date + "]";
}
}
自定义TypeHandle,有两种实现方式:直接实现 TypeHandler 也可以继承 BaseTypeHandler,这里我选择直接实现 TypeHandler :
DateToStringTypeHandler.java
package com.lks.handler;
import org.apache.ibatis.type.JdbcType;
import org.apache.ibatis.type.TypeHandler;
import java.sql.CallableStatement;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.ParsePosition;
import java.text.SimpleDateF

本文介绍了如何使用MyBatis的自定义TypeHandler功能,解决Java实体类中Date类型与数据库字符串类型之间的转换问题。通过创建DateToStringTypeHandler并配置到mybatis-config.xml,以及在mapper文件中应用,确保查询和新增操作中的类型转换得以顺利进行。这种方法同样适用于处理枚举类型的转换,提高了项目的灵活性。
最低0.47元/天 解锁文章
2035

被折叠的 条评论
为什么被折叠?



