猿问

mybatis批量更新 返回值为-1 这个是什么情况呢

mybatis xml文件

<!-- 批量更新 -->
  <update id="batchUpdate"  parameterType="java.util.List">
      <if test="list != null">
       <foreach collection="list" item="item" index="index" open="begin" close="; end;" separator=";">
             update REPORT_CHARGED_HOMEWORK
                <set >
                  <if test="item.departmentName != null" >
                    DEPARTMENT_NAME = #{item.departmentName,jdbcType=VARCHAR},
                  </if>
                  <if test="item.workTicket != null" >
                    WORK_TICKET = #{item.workTicket,jdbcType=VARCHAR},
                  </if>
                  <if test="item.teamNumber != null" >
                    TEAM_NUMBER = #{item.teamNumber,jdbcType=VARCHAR},
                  </if>
                  <if test="item.responsiblePerson != null" >
                    RESPONSIBLE_PERSON = #{item.responsiblePerson,jdbcType=VARCHAR},
                  </if>
                  <if test="item.substation != null" >
                    SUBSTATION = #{item.substation,jdbcType=VARCHAR},
                  </if>
                </set>
                where TEMPORARY_ID = #{item.temporaryId,jdbcType=VARCHAR}
       </foreach>
      </if>
    </update>

service层 

int i=ChargedHomeworkMapper.batchUpdate(list);

经过debug模式调试发现 每次执行 批量更新的时候 返回值都为-1  这个为什么呢? 求各位大哥大姐帮帮忙

人生若只如初见_0022
浏览 19694回答 3
3回答

慕移动5207743

坏了,所以会这样

Franciswmf

我也遇到了这个问题,不知道如何解释!希望大牛给出高见。。。。

Jimin

返回负数,是由于mybatis的defaultExecutorType的引起的,defaultExecutorType有三个执行器SIMPLE、REUSE和BATCH。其中BATCH可以批量更新操作缓存SQL以提高性能,但是有个缺陷就是无法获取update、delete返回的行数如果确定要拿到更新条数,defaultExecutorTypes设置成SIMPLE就可以
随时随地看视频慕课网APP

相关分类

Java
我要回答