问题描述
报错:No typehandler found for property time
(注:time是LocalDateTime类型的字段)
LocalDateTimeTypeHandler
public class LocalDateTimeTypeHandler implements TypeHandler<LocalDateTime> {
private DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
@Override
public void setParameter(PreparedStatement ps, int i, LocalDateTime parameter, JdbcType jdbcType) throws SQLException {
if (parameter != null) {
ps.setString(i, formatter.format(parameter));
} else {
ps.setTimestamp(i, null);
}
}
@Override
public LocalDateTime getResult(ResultSet rs, String columnName) throws SQLException {
String dateStr = rs.getString(columnName);
return dateStr == null ? null : LocalDateTime.parse(dateStr, formatter);
}
@Override
public LocalDateTime getResult(ResultSet rs, int columnIndex) throws SQLException {
String dateStr = rs.getString(columnIndex);
return dateStr == null ? null : LocalDateTime.parse(dateStr, formatter);
}
@Override
public LocalDateTime getResult(CallableStatement cs, int columnIndex) throws SQLException {
String dateStr = cs.getString(columnIndex);
return dateStr == null ? null : LocalDateTime.parse(dateStr, formatter);
}
}
mybatis-config.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<settings>
</settings>
<typeHandlers>
<typeHandler handler="com.vanwardsmart.mybatis.LocalDateTimeTypeHandler" javaType="java.time.LocalDateTime"/>
</typeHandlers>
</configuration>