mybatis 3.2.8 动态SQL的bug 你踩坑了么

mybatis 3.2.8 动态SQLbug

<select id="queryStudyCourseList" resultType="cn.resource.study.model.StuCourseDTO">
		SELECT 	stuCid, stuId, stuName, stuNo, pubId, title, totalHours, images, subId
		FROM study_course WHERE isDeleted=0 
		<if test="schoolId != null">    			
			AND schoolId=#{schoolId} 
		</if>
		<if test="expiredDate != null">
			AND expiredDate <![CDATA[ > ]]> #{expiredDate} 
		</if>
		<if test="pubId != null">
 		AND pubId=#{pubId} 
 		<if test="stuName != null and stuName != ''">
 			AND stuName LIKE CONCAT('%', #{stuName},'%') 
 		</if>
		</if>
		<if test="stuIdList != null and stuIdList.size > 0">
			AND stuId IN 
			<foreach collection="stuIdList" item="stuId" open="(" separator="," close=")">
				#{stuId}
			</foreach>
		</if>
		<if test="courseIdList != null and courseIdList.size > 0">
			AND pubId IN 
			<foreach collection="courseIdList" item="courseId" open="(" separator="," close=")">
				#{courseId}
			</foreach>
		</if>
        <if test="stuId != null">
            AND stuId=#{stuId}
        </if>
  		ORDER BY stuCid DESC
</select>

如上SQL中,因为item的值为stuId,在stuIdList不为空,但是stuId为null的情况下 stuId != null 会成立,此时stuId为stuIdList的最后一个元素

此问题出现版本mybatis 3.2.8,高版本中已修复此bug
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值