mybatis的foreach标签语法报错的解决

 更新时间:2022年02月08日 10:22:18   作者:like_java_  
这篇文章主要介绍了mybatis的foreach标签语法报错的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

foreach标签语法报错

 

 

 

开发中因为方便复制了其它的foreach标签,但是在执行时,一直报sql语法错误,没办法自己重写一遍foreach标签,

执行成功.

但是,我还是耐心去找到问题所在:

发现下面的标签后面有一段空字符,注意:前面带点的空格位空白字符,后面两点之间的空格为空字符,至于为什么复制来的标签为什么会带有空字符,而且空字符也带入了sql中,引起sql编译报错.这一点我还不太清楚,,,反正我手打不出空字符.

网上查了一下,说是什么\0的时候就是空字符,但是为什么复制的时候会出现呢?

网上说的什么去掉foreach的前后空格,在我这不太适用,这不是空格,这就是空字符.

动态sql中foreach标签使用

foreach标签主要用于构建in条件,他可以在sql中对集合进行迭代。如下:

  <delete id="deleteBatch"> 
    delete from user where id in
    <foreach collection="array" item="id" index="index" open="(" close=")" separator=",">
      #{id}
    </foreach>
  </delete>

我们假如说参数为----  int[] ids = {1,2,3,4,5}  ----那么打印之后的SQL如下:

delete form user where id in (1,2,3,4,5)

释义:

  • collection:collection属性的值有三个分别是list、array、map三种,分别对应的参数类型为:List、数组、map集合,我在上面传的参数为数组,所以值为array
  • item:表示在迭代过程中每一个元素的别名
  • index:表示在迭代过程中每次迭代到的位置(下标)
  • open:前缀
  • close:后缀
  • separator:分隔符,表示迭代时每个元素之间以什么分隔

我们通常可以将之用到批量删除、添加等操作中。

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

相关文章

  • Spring创建Bean的过程Debug的详细流程

    Spring创建Bean的过程Debug的详细流程

    这篇文章主要介绍了Spring创建Bean的过程Debug的流程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-11-11
  • SpringBoot Import及自定义装配实现方法解析

    SpringBoot Import及自定义装配实现方法解析

    这篇文章主要介绍了SpringBoot Import及自定义装配实现方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08
  • 详解Java如何利用反射提高代码的灵活性

    详解Java如何利用反射提高代码的灵活性

    反射是Java语言的一种特性,它允许程序在运行时动态地获取类的信息并操作类的属性、方法和构造函数,使得我们的代码更加灵活和可扩展,下面就来看看Java中反射机制的具体操作吧
    2023-05-05
  • Java线程状态运行原理解析

    Java线程状态运行原理解析

    这篇文章主要介绍了Java线程状态运行原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • maven学习-初窥门径

    maven学习-初窥门径

    这篇文章主要介绍了maven的简单知识,介绍了maven的定义及核心功能,具有一定参考价值,大家可以了解下。
    2017-10-10
  • 详解如何在Java中使用阿里云对象存储OSS

    详解如何在Java中使用阿里云对象存储OSS

    Java是世界上最流行的编程语言之一,拥有着广泛的应用场景和强大的生态系统,阿里云对象存储 OSS 是一种企业级的云存储服务,本文将介绍如何在 Java 中使用阿里云对象存储 OSS,并写一点相应的代码示例供大家参考
    2023-06-06
  • java读取图片并显示方式

    java读取图片并显示方式

    这篇文章主要介绍了java读取图片并显示方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • 工具类之关于RestTemplateUtil工具类的使用

    工具类之关于RestTemplateUtil工具类的使用

    这篇文章主要介绍了工具类之关于RestTemplateUtil工具类的使用,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-10-10
  • java利用Apache commons codec进行MD5加密,BASE64加密解密,执行系统命令

    java利用Apache commons codec进行MD5加密,BASE64加密解密,执行系统命令

    这篇文章主要介绍了java利用apache Commons包进行MD5加密,BASE64加密解密与执行系统命令希望对大家有用
    2017-12-12
  • 关于JVM翻越内存管理的墙

    关于JVM翻越内存管理的墙

    这篇文章主要介绍了JVM翻越内存管理的墙,由虚拟机管理内存看起来一切都很美好,但也正是因为把控制内存的权力交给了Java虚拟机,一旦出现内存泄漏和溢出方面的问题,就不得不从Java虚拟机角度上去排查问题,本文给大家介绍的非常详细,需要的朋友可以参考下
    2022-05-05

最新评论