在MyBatis中,如果数据库中的数值类型字段为null,而你希望查询出来的结果也是null而不是0,你可以在映射文件中的resultMap或者对应的select标签中使用jdbcTypeForNull
属性来指定处理null值的类型。
<resultMap id="yourResultMap" type="yourClass">
<!-- 其他字段映射 -->
<result column="yourColumn" jdbcTypeForNull="INTEGER" property="yourProperty"/>
</resultMap>
关键在于这个 jdbcTypeForNull="INTEGER"
自己理解是 把这个类型转为了 INTEGER 这个整数类型,而这个可以被赋予 null 值
然后再引用就可以了
<select id="yourSelect" resultMap="yourResultMap">
SELECT yourColumn FROM yourTable
</select>
这样,当数据库中的该字段值为null时,MyBatis会将其作为null返回,而不是0。
ok 完美解决