mybatis获取map值的问题

mybatis获取map值的问题


最近在使用xml编写sql的时候,对于请求变量多的时候 一个个的变量定义太多,于是使用map进行传参,但是在传参的时候总是会取不到值,
Parameter 'deviceTypeId' not found. Available parameters are [map, param1] 报错 。

在这里插入图片描述
在这里插入图片描述再使用map传参时,总是报错参数找不到,后来经过测试发现再取值的时候如果是map或者对象传参需要使用map.xxx / obj.xxx的方式进行取值
对于开始取不到值,都是因为自己再取值时只是再#{} 里面使用了map进行了引用,而对于外部的条件判断时没用进行引用,因此报错
在这里插入图片描述
改错之后再if 里面进行了引用,成功的将map进行了取值。
在这里插入图片描述使用obj对象进行传参,在xml里面也需要使用对象引用取值
在这里插入图片描述在这里插入图片描述

SELECT
  ....
 FROM
	 ....
 JOIN ....
 ON ....
 <where>
      <if test="map.xx!=null and map.xx!= ''">
          AND xx = #{map.xx,jdbcType=VARCHAR}
      </if>
      <if test="map.xx !=null and map.xx != ''">
          AND xxx = #{map.xxx,jdbcType=VARCHAR}
      </if>
  </where>

# 如果是进行对象传参,使用对象引用的方式
 <where>
      <if test="obj.xx!=null and obj.xx!= ''">
          AND xx = #{map.xx,jdbcType=VARCHAR}
      </if>
      <if test="obj.xx !=null and obj.xx != ''">
          AND xxx = #{map.xxx,jdbcType=VARCHAR}
      </if>
  </where>
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值