在MyBatis Plus中,可以自定义TypeHandler来处理特殊的类型转换。下面是如何自定义一个 TypeHandler 的步骤:
我们需要创建一个实现 org.apache.ibatis.type.TypeHandler接口的类。这个类需要实现以下几个方法:
- setParameter(PreparedStatement ps, int i, T parameter, JdbcType jdbcType): 设置参数。
- getResult(ResultSet rs, String columnName): 从结果集中获取数据。
- getResult(CallableStatement cs, int columnIndex): 从存储过程中获取数据。
具体例子
1.将 java.util.Date 转换为java.util.String 字符串的 TypeHandler
import org.apache.ibatis.type.BaseTypeHandler;
import org.apache.ibatis.type.JdbcType;
import org.apache.ibatis.type.TypeHandler;
import java.sql.*;
import java.util.*;
public class DateToStringTypeHandler extends BaseTypeHandler<Date> {
@Override
public void setNonNullParameter(PreparedStatement ps, int i, Date parameter, JdbcType jdbcType) throws SQLException {
ps.setString(i, parameter.toString());
}
@Override
public Date getNullableResult(ResultSet rs, String columnName) throws SQLException {
return new Date(rs.getString(columnName));
}
@Override
public Date getNullableResult(ResultSet rs, int columnIndex) throws SQLException {
return new Date(rs.getString(columnIndex));
}
@Override
public Date getNullableResult(CallableStatement cs, int columnIndex) throws SQLException {
return new Date(cs.getString(columnIndex));
}
}
2.在 MyBatis Plus 的配置文件中注册这个 TypeHandler
config.getTypeHandlerRegistry().register(DateToStringTypeHandler.class);
这样,当SQL 查询返回日期类型的数据时,MyBatis Plus 就会使用自定义的DateToStringTypeHandler 来将日期转换为字符串。
标签:自定义,TypeHandler,int,rs,Date,Plus,Mybatis,import,public From: https://blog.51cto.com/u_15527112/8737168