XML返回配置
<resultMap id="resultId" type="com.domain.demo">
<result column="testString" property="testString" typeHandler="com.tools.MybatisEmptyStringIfNull"/>
<result column="testDouble" property="testDouble" typeHandler="com.tools.MybatisEmptyBigDecimalToZero"/>
</resultMap>
格式化类
String
package com.tools; import java.sql.CallableStatement; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import org.apache.ibatis.type.JdbcType; import org.apache.ibatis.type.TypeHandler; public class MybatisEmptyStringIfNull implements TypeHandler<String>{ @Override public void setParameter(PreparedStatement ps, int i, String parameter, JdbcType jdbcType) throws SQLException { // TODO Auto-generated method stub } @Override public String getResult(ResultSet rs, String columnName) throws SQLException { return (rs.getString(columnName) == null) ? "" : rs.getString(columnName); } @Override public String getResult(ResultSet rs, int columnIndex) throws SQLException { return (rs.getString(columnIndex) == null) ? "" : rs.getString(columnIndex); } @Override public String getResult(CallableStatement cs, int columnIndex) throws SQLException { return (cs.getString(columnIndex) == null) ? "" : cs.getString(columnIndex); } }
Double
package com.tools; import org.apache.ibatis.type.JdbcType; import org.apache.ibatis.type.TypeHandler; import java.math.BigDecimal; import java.sql.CallableStatement; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class MybatisEmptyBigDecimalToZero implements TypeHandler<BigDecimal>{ @Override public void setParameter(PreparedStatement ps, int i, BigDecimal parameter, JdbcType jdbcType) throws SQLException { // TODO Auto-generated method stub } @Override public BigDecimal getResult(ResultSet rs, String columnName) throws SQLException { return (rs.getBigDecimal(columnName)==null) ? new BigDecimal(0) : rs.getBigDecimal(columnName); } @Override public BigDecimal getResult(ResultSet rs, int columnIndex) throws SQLException { return (rs.getBigDecimal(columnIndex) ==null) ? new BigDecimal(0) : rs.getBigDecimal(columnIndex); } @Override public BigDecimal getResult(CallableStatement cs, int columnIndex) throws SQLException { return (cs.getBigDecimal(columnIndex) ==null) ? new BigDecimal(0) : cs.getBigDecimal(columnIndex); } }