1、我们在mysql的使用中,很多时候都需要使用类型处理器。主要可以使类型转化直接在mysql中完成转化。而不用将类型转化入侵到逻辑代码里面,可以使代码的时候更加清晰和明了。在转化的时候又有绝大部分,都是实体类转化为String类型的json的对象存入mysql数据库中。但是每个实体类都去定义一个类型转化器未免过于麻烦,我们可以将此类mysql的转化器转化用一个通用json转化的类处理来处理。
下面是具体代码:
@MappedTypes(Object.class)
@MappedJdbcTypes({JdbcType.LONGNVARCHAR,JdbcType.VARCHAR})
public class MybatisJsonTypeHandler<T extends Object> extends BaseTypeHandler<T> {
private Class<T> tClass;
public MybatisJsonTypeHandler(Class<T> tClass) {
if (null == tClass) {
throw new IllegalArgumentException("type argument cannot be null");
}
this.tClass = tClass;
}
@Override
public void setNonNullParameter(PreparedStatement ps, int i, T parameter, JdbcType jdbcType) throws SQLException {
ps.setString(i,JSON.toJSONString(parameter));
}
@Override
public T getNullableResult(ResultSet rs, String