1、新建自定义typeHandler类CustomTypeHandler并继承BaseTypeHandler<T>;
2、添加注解
@MappedJdbcTypes({ JdbcType.TIMESTAMP }) @MappedTypes({ String.class })
3、重写父类方法,并实现自己的需求
4、对参数进行拦截
5、mybatis的mapper.xml 文件中引用自定义的Handler
6、代码文件
package com.wlqq.etc.agent; import org.apache.commons.lang3.StringUtils; import org.apache.ibatis.type.BaseTypeHandler; import org.apache.ibatis.type.JdbcType; import org.apache.ibatis.type.MappedJdbcTypes; import org.apache.ibatis.type.MappedTypes; import org.apache.poi.ss.formula.functions.T; import java.sql.CallableStatement; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; /** * test * * @author rongyun.he * @create 2019/6/19 */ @MappedJdbcTypes({ JdbcType.TIMESTAMP }) @MappedTypes({ String.class }) public class CustomTypeHandler extends BaseTypeHandler<String> { @Override public void setNonNullParameter(PreparedStatement ps, int i, String parameter, JdbcType jdbcType) throws SQLException { String paramete2r=parameter.substring(0,4); ps.setString(i, paramete2r); } @Override public String getNullableResult(ResultSet rs, String columnName) throws SQLException { return substring(Integer.parseInt(rs.getString(columnName))); } @Override public String getNullableResult(ResultSet rs, int columnIndex) throws SQLException { return rs.getString(columnIndex); } @Override public String getNullableResult(CallableStatement cs, int columnIndex) throws SQLException { return cs.getString(columnIndex); } private String substring(Integer value) { String result = StringUtils.EMPTY; if (value != null) { switch (value.intValue()) { case 1: result = "员工"; break; case 2: result = "高级代理"; break; case 3: result = "中级带来"; break; case 4: result = "办事员"; break; default: result = "商机代理"; break; } } // if (!"".endsWith(value) && value != null) { // return value.substring(0, value.length() - 2); // } return result; } }