① 定义转换类继承类BaseTypeHandler
public class MyDateTypeHandler extends BaseTypeHandler<Date> {
有二种方法,getNullableResult有三种实现方法,set将java类型转化为jdbc类型,get将jdbc类型转化为java
② 覆盖4个未实现的方法,其中setNonNullParameter为java程序设置数据到数据库的回调方法,getNullableResult为查询时 mysql的字符串类型转换成 java的Type类型的方法
{
preparedStatement.setString(i,date.getTime()+"");
}
public Date getNullableResult(ResultSet resultSet, String s) throws SQLException {
return new Date(resultSet.getLong(s));
}
public Date getNullableResult(ResultSet resultSet, int i) throws SQLException {
return new Date(resultSet.getLong(i));
}
public Date getNullableResult(CallableStatement callableStatement, int i) throws SQLException {
return callableStatement.getDate(i);
}
}
③ 在MyBatis核心配置文件中进行注册
<typeHandler handler="com.itheima.typeHandlers.MyDateTypeHandler"></typeHandler>
</typeHandlers>
④ 测试转换是否正确
user.setBirthday(new Date());
userMapper.add2(user);