mybatis的resultType为java.util.Map时,值为null的字段不存在key

记住一个点:
springboot 项目中有后门,即在html 页面中,可输入sql 传到后台去操作数据库。因此,select 语句时,查询的字段是随机的,但平时使用 mybatis 时都会建立 resultMap ,使数据库表中的字段,与实体类的 属性一一对应。查询字段随机,所以在 mybatis 的 xml 文件里无法建立返回 resultMap 。
做法:在 <select> 标签 中,resultType 直接写 java.util.Map 。

<select id="selectSql" parameterType="java.lang.String" statementType="STATEMENT" resultType="java.util.Map">
        ${exeSql}
  </select>

此时就进入正题,若某条数据的某个字段值为 null ,则在返回形成的 Map中,没有该字段的 key键 (若值是空字符串,"",该key键也会有)。

解决:在配置文件 application.yml 的 mybatis 配置中,添加参数设置

mybatis: 
	configuration:
		call-setters-on-nulls: true 

此时,生成的 Map 中就会出现字段值为 null 的 key 键。当然,值依然是 null。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值