当前位置: 移动技术网 > IT编程>开发语言>Java > Mybatis传单个参数和<if>标签同时使用的问题及解决方法

Mybatis传单个参数和<if>标签同时使用的问题及解决方法

2019年07月19日  | 移动技术网IT编程  | 我要评论
// mapper.java
emerevent selectbyalarmid(integer alarmid);
// mapper.xml
<select id="selectbyalarmid" resultmap="baseresultmap" parametertype="java.lang.integer">
  select
    <include refid="base_column_list" />
  from event
  <where>
    <if test="alarmid != null">
      and alarm_id = #{alarmid,jdbctype=integer}
    </if>
  </where>
</select>

由于只传了一个参数:alarmid,配置文件中对应的sql里使用if标签,然后报错:

nested exception is org.apache.ibatis.reflection.reflectionexception: there is no getter for property named 'alarmid' in 'class java.lang.integer'

解决办法:

1.将mapper配置文件中的sql语句中的if判断去掉

<select id="selectbyalarmid" resultmap="baseresultmap" parametertype="java.lang.integer">
   select
    <include refid="base_column_list" />
   from event
    where alarm_id = #{alarmid,jdbctype=integer}
</select>

2.如果想要使用if标签,则将参数alarmid封装到对象或map中即可

总结

以上所述是小编给大家介绍的mybatis传单个参数和<if>标签同时使用的问题及解决方法,希望对大家有所帮助

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网