转自:
Mybatis如何查询数据部分字段显示为null,转成空串("")呢?
Mybatis查询数据时,字段为null,转换为空串的方法分享
实现思路: 1.定义handler实现字段中的null转换为空串("")2.Mapper.xml中typeHandler属性中加入handler类的全路径
例:
CustomStringTypeHandler.javapackage com.java265.common.mybatis.handler;
import org.apache.ibatis.executor.result.ResultMapException;
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 java.sql.CallableStatement;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;/*** @Name: CustomStringTypeHandler* @Desc: 自定义mybatis处理类,将null返回为空串('')* @Author: java265.com* @Date: 2022-05-18 10:18*/
@MappedTypes({String.class})
@MappedJdbcTypes(JdbcType.VARCHAR)
public class CustomStringTypeHandler extends BaseTypeHandler {@Overridepublic String getResult(ResultSet rs, String columnName) {String result;try {result = getNullableResult(rs, columnName);} catch (Exception e) {throw new ResultMapException("Error attempting to get column '" + columnName + "' from result set. Cause: " + e, e);}return result;}@Overridepublic void setNonNullParameter(PreparedStatement ps, int i, String parameter, JdbcType jdbcType)throws SQLException {ps.setString(i, parameter);}@Overridepublic String getNullableResult(ResultSet rs, String columnName)throws SQLException {return rs.getString(columnName) == null? "" : rs.getString(columnName);}@Overridepublic String getNullableResult(ResultSet rs, int columnIndex)throws SQLException {return rs.getString(columnIndex) == null? "" : rs.getString(columnIndex);}@Overridepublic String getNullableResult(CallableStatement cs, int columnIndex)throws SQLException {return cs.getString(columnIndex) == null? "" : cs.getString(columnIndex);}
}
Mapper.xml
上一篇:MySQL第一弹