在 MyBatis 中,tinyint 类型的映射问题可以通过配置类型处理器来解决。在 MyBatis 中,tinyint 类型数据默认会被映射为 byte 类型,但是有时候我们希望将其映射为 int 类型或者其他类型。
解决方法有两种:
示例代码如下:
public class TinyintTypeHandler extends BaseTypeHandler<Integer> {
@Override
public void setNonNullParameter(PreparedStatement ps, int i, Integer parameter, JdbcType jdbcType) throws SQLException {
ps.setInt(i, parameter);
}
@Override
public Integer getNullableResult(ResultSet rs, String columnName) throws SQLException {
return rs.getInt(columnName);
}
@Override
public Integer getNullableResult(ResultSet rs, int columnIndex) throws SQLException {
return rs.getInt(columnIndex);
}
@Override
public Integer getNullableResult(CallableStatement cs, int columnIndex) throws SQLException {
return cs.getInt(columnIndex);
}
}
示例代码如下:
@Results({
@Result(property = "tinyintField", column = "tinyint_column", javaType = Integer.class)
})
通过以上两种方法,可以解决 MyBatis 中 tinyint 类型的映射问题。