Mybatis傳單個參數(shù)和<if>標簽同時使用的問題及解決方法

// 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>

由于只傳了一個參數(shù):alarmId,配置文件中對應的sql里使用if標簽,然后報錯:

創(chuàng)新互聯(lián)建站主營象州網(wǎng)站建設的網(wǎng)絡公司,主營網(wǎng)站建設方案,成都App定制開發(fā),象州h5小程序開發(fā)搭建,象州網(wǎng)站營銷推廣歡迎象州等地區(qū)企業(yè)咨詢

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標簽,則將參數(shù)alarmId封裝到對象或Map中即可

總結

以上所述是小編給大家介紹的Mybatis傳單個參數(shù)和<if>標簽同時使用的問題及解決方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對創(chuàng)新互聯(lián)網(wǎng)站的支持!

網(wǎng)站名稱:Mybatis傳單個參數(shù)和<if>標簽同時使用的問題及解決方法
文章分享:http://muchs.cn/article30/iheopo.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、手機網(wǎng)站建設、品牌網(wǎng)站設計、響應式網(wǎng)站、定制開發(fā)網(wǎng)站設計

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

h5響應式網(wǎng)站建設