mybatis映射特殊类型时使用自定义类型处理器
使用mybstis3.5.3和数据库oracle时,无法将实体类数据类型Boolean和数据库数据类型varchar2进行映射,在这里使用自定义类型处理器TypeHandler进行类型的转换。
1 public class BooleanVarcharTypeHandler extends BaseTypeHandler<Boolean> { 2 /** 3 * 查询的时候设置参数的值 4 */ 5 @Override 6 public void setNonNullParameter(PreparedStatement preparedStatement, int i, Boolean aBoolean, JdbcType jdbcType) throws SQLException { 7 preparedStatement.setString(i, null == aBoolean ? "N" : aBoolean ? "Y" : "N"); 8 } 9 10 /** 11 * 根据列名和下标获取结果集的值 12 */ 13 @Override 14 public Boolean getNullableResult(ResultSet resultSet, String s) throws SQLException { 15 String str = resultSet.getString(s); 16 return "Y".equals(str); 17 } 18 19 @Override 20 public Boolean getNullableResult(ResultSet resultSet, int i) throws SQLException { 21 String str = resultSet.getString(i); 22 return "Y".equals(str); 23 } 24 25 @Override 26 public Boolean getNullableResult(CallableStatement callableStatement, int i) throws SQLException { 27 String str = callableStatement.getString(i); 28 return "Y".equals(str); 29 } 30 }

浙公网安备 33010602011771号