在MyBatis中将数据库中的Datetime类型转换为Date类型可以通过使用TypeHandler来实现。以下是一个示例代码:
首先创建一个自定义的TypeHandler类,继承自BaseTypeHandler
public class DateTimeToDateTypeHandler extends BaseTypeHandler{ @Override public void setNonNullParameter(PreparedStatement ps, int i, Date parameter, JdbcType jdbcType) throws SQLException { ps.setTimestamp(i, new Timestamp(parameter.getTime())); } @Override public Date getNullableResult(ResultSet rs, String columnName) throws SQLException { Timestamp timestamp = rs.getTimestamp(columnName); return timestamp != null ? new Date(timestamp.getTime()) : null; } @Override public Date getNullableResult(ResultSet rs, int columnIndex) throws SQLException { Timestamp timestamp = rs.getTimestamp(columnIndex); return timestamp != null ? new Date(timestamp.getTime()) : null; } @Override public Date getNullableResult(CallableStatement cs, int columnIndex) throws SQLException { Timestamp timestamp = cs.getTimestamp(columnIndex); return timestamp != null ? new Date(timestamp.getTime()) : null; } }
然后在MyBatis的配置文件中注册该TypeHandler:
最后在对应的Mapper XML文件中使用该TypeHandler:
这样就可以在MyBatis中将数据库中的Datetime类型自动转换为Date类型。