_parameter;@param,refid是什么意思?

1、_parameter是什么?


可以看到_parameter != null这句代码,这里涉及到mapper文件传入的参数,如果只传入了一个参数,那么_parameter 就代表该参数,如果有多个参数,那么_parameter 可以get(0)得到第一个参数。

 <if test="_parameter != null" >
      <include refid="Update_By_Example_Where_Clause" />
    </if>
    int updateByExampleSelective(@Param("record") TrmlReport record, @Param("example") TrmlReportExample example);

上面就是传入了两个参数,那么我们如上面解释的就会得到第一个参数record,好解释了上述内容,我们又要去问这里@Param是什么意思?

2、@Param是什么?


其实就像刚刚_parameter一样我们只是也只能取出一个参数,那么当我们只有一个参数的时候@param只有重命名参数的含义,但是当我们有多个参数的时候@param相当于为参数起了名字,这样我们就可以取出想要的参数的属性。
这里进一步解释举一个例子,record下有id这个属性,example下也有id这个属性,那么在sql语句中,#{id}到底是代表record.id还是example.id其实是不知道的,所以我们需要@param为多个参数的情况下取名来解决这个问题

3、refid是什么?


这里refid作用就是调用了如下写的代码

<sql id="Update_By_Example_Where_Clause" >
    <where >
      <foreach collection="example.oredCriteria" item="criteria" separator="or" >
        <if test="criteria.valid" >
          <trim prefix="(" suffix=")" prefixOverrides="and" >
            <foreach collection="criteria.criteria" item="criterion" >
              <choose >
                <when test="criterion.noValue" >
                  and ${criterion.condition}
                </when>
                <when test="criterion.singleValue" >
                  and ${criterion.condition} #{criterion.value}
                </when>
                <when test="criterion.betweenValue" >
                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
                </when>
                <when test="criterion.listValue" >
                  and ${criterion.condition}
                  <foreach collection="criterion.value" item="listItem" open="(" close=")" separator="," >
                    #{listItem}
                  </foreach>
                </when>
              </choose>
            </foreach>
          </trim>
        </if>
      </foreach>
    </where>
  </sql>
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值