Mybatis使用foreach批量更新数据报无效字符错误问题

 更新时间:2024年08月19日 10:44:31   作者:MiracleSang  
这篇文章主要介绍了Mybatis使用foreach批量更新数据报无效字符错误问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

使用foreach批量更新数据报无效字符错误

改动前

<update id="updateByECBoxIdBatch" parameterType="java.util.List">
    <foreach collection="list" item="item" index="index" open="" close=";" separator=";">
        update EC_ENTRUST_BOX
        set REALMONEY = #{item.money,jdbcType=DECIMAL}
        where BOX_ID = #{item.boxId,jdbcType=VARCHAR}
        and ENTRUST_MONEY_ID = #{item.ecEntrustMoneyId,jdbcType=VARCHAR}
    </foreach>
</update>

后台执行的SQL:

update EC_ENTRUST_BOX
set REALMONEY = ?
where BOX_ID = ?
and ENTRUST_MONEY_ID = ?
;
update EC_ENTRUST_BOX
set REALMONEY = ?
where BOX_ID = ?
and ENTRUST_MONEY_ID = ?
;
update EC_ENTRUST_BOX
set REALMONEY = ?
where BOX_ID = ?
and ENTRUST_MONEY_ID = ?
;

报错:无效字符

改动后:(加了begin,end)

<update id="updateByECBoxIdBatch" parameterType="java.util.List">
    <foreach collection="list" item="item" index="index" open="begin" close=";end;" separator=";">
        update EC_ENTRUST_BOX
        set REALMONEY = #{item.money,jdbcType=DECIMAL}
        where BOX_ID = #{item.boxId,jdbcType=VARCHAR}
        and ENTRUST_MONEY_ID = #{item.ecEntrustMoneyId,jdbcType=VARCHAR}
    </foreach>
</update>

后台执行的SQL:

begin
update EC_ENTRUST_BOX
set REALMONEY = ?
where BOX_ID = ?
and ENTRUST_MONEY_ID = ?
;
update EC_ENTRUST_BOX
set REALMONEY = ?
where BOX_ID = ?
and ENTRUST_MONEY_ID = ?
;
update EC_ENTRUST_BOX
set REALMONEY = ?
where BOX_ID = ?
and ENTRUST_MONEY_ID = ?
;end;

正常执行~~~~~~~~

Mybatis报“无效字符”的错的原因

mybatis报ORA-00911: 无效字符。

原因是

在mapper配置中有“;”

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Java动态代理Proxy应用和底层源码详细分析

    Java动态代理Proxy应用和底层源码详细分析

    Java动态代理是一种在运行时生成代理类的机制,用于代替手动编写代理类的过程,这篇文章主要给大家介绍了关于Java动态代理Proxy应用和底层源码详细分析的相关资料,需要的朋友可以参考下
    2024-03-03
  • Java List集合返回值去掉中括号(''[ ]'')的操作

    Java List集合返回值去掉中括号(''[ ]'')的操作

    这篇文章主要介绍了Java List集合返回值去掉中括号('[ ]')的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-08-08
  • 浅谈Java中是否直接可以使用enum进行传输

    浅谈Java中是否直接可以使用enum进行传输

    这篇文章主要介绍了浅谈Java中是否直接可以使用enum进行传输,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05
  • spring5新特性全面介绍

    spring5新特性全面介绍

    本文将全面介绍 Spring 5。我将介绍 Java SE 8 和 Java EE 7 API 的基准升级、Spring 5 的新反应式编程模型、HTTP/2 支持,以及 Spring 通过 Kotlin 对函数式编程的全面支持。
    2020-10-10
  • java如何实现抽取json文件指定字段值

    java如何实现抽取json文件指定字段值

    这篇文章主要介绍了java如何实现抽取json文件指定字段值,具有很好的参考价值,希望对大家有所帮助。
    2022-06-06
  • JavaWeb文件上传下载功能深入分析(二)

    JavaWeb文件上传下载功能深入分析(二)

    这篇文章主要为大家详细解析了JavaWeb文件上传与下载功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-06-06
  • Mybatis批量提交实现步骤详解

    Mybatis批量提交实现步骤详解

    这篇文章主要介绍了Mybatis批量提交实现步骤详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-12-12
  • java在运行时能修改工作目录吗

    java在运行时能修改工作目录吗

    这篇文章主要给大家介绍了关于java在运行时能修改工作目录的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用java具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-08-08
  • Java原生序列化和反序列化代码实例

    Java原生序列化和反序列化代码实例

    这篇文章主要介绍了Java原生序列化和反序列化代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02
  • 解析Neatbeans(常见错误) build-impl.xml:305: Compile failed

    解析Neatbeans(常见错误) build-impl.xml:305: Compile failed

    本篇文章是对Neatbeans(常见错误) build-impl.xml:305: Compile failed的解决方法进行了详细的分析介绍,需要的朋友参考下
    2013-07-07

最新评论