在 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 類型的映射問題。