mybatis报Query was Empty异常的问题
mybatis报Query was Empty异常
mybatis中的<foreach>标签在批处理的时候经常要使用到,而使用<foreach>避免不了的就是要对list进行非空判断,否则很容易出错。
今天我在批量插入时,我的代码是这样的
<if test="list!=null and list.size>0> insert into tables values <foreach item="item" separator="," open="(" close=")"> #{item} </foreach> </if>
本以为在外面加上判断就可以啦,但是运行时就抛出了这个异常:Query was Empty这个异常,那么这个异常是怎么来的呢,其实就是List为空时,经过<if>标签的判断,从而使的这个<insert>标签里面没有内容,所以就导致了这个异常:Query was Empty。
我总觉得这个东西应该是Mybatis的缺陷,怎么每次都要对这个list进行判断,而且感觉判断起来还很麻烦,希望以后对foreach标签会支持更好一些,用起来更爽一些。
mybatis批量更新出现Query was Empty
自己在检查其他情况无误的情况下,后台还是给我报错“query was empty”,从字面 意思就是“查询为空”,这里表达的不准确,这里是因为你的传入的list集合是空集合,而不是查询结果为空而引发的异常,所以我们需要对集合进行判断是否传入的是有参数的集合,以免让mybatis直接抛出一大串不友好的异常,这里记录一下。
<update id="updateFeeAndCharge" parameterType="java.util.List"> <foreach collection="list" item="items" separator =";"> update item set enroll1=#{items.enroll1}, enroll1=#{items.enroll2}, business1=#{items.business1}, business2=#{items.business2} where id=#{items.id} </foreach> </update>
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
Java Big Number操作BigInteger及BigDecimal类详解
这篇文章主要为大家介绍了Java Big Number操作BigInteger及BigDecimal类详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2022-07-07Spring和MyBatis整合自动生成代码里面text类型遇到的坑
Spring和MyBatis整合以后,使用自动生成代码工具生成dao和mapper配置文件。下面通过本文给大家介绍Spring和MyBatis整合自动生成代码里面text类型遇到的坑,需要的朋友参考下吧2018-01-01使用 EasyCode生成springboot+mybatis基础程序的实现示例
本文主要介绍了使用 EasyCode生成springboot+mybatis基础程序的实现示例,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2022-01-01java开发web前端cookie session及token会话机制详解
如果把人体比作一个web系统的话,cookie、session和token就好像人体的经络和血管一样,而web系统中的数据,就好像人体的血液一样。血液依靠着血管在人体内流动,就如数据根据cookie和session机制在web系统中流动一样2021-10-10
最新评论