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 Boot访问静态资源css/js,你真的懂了吗

    Spring Boot访问静态资源css/js,你真的懂了吗

    在搭建springboot时经常需要在html中访问一些静态资源,很多朋友不清楚如何在 Spring Boot中访问静态资源,本文给大家带来两种解决方案,感兴趣的朋友跟随小编一起看看吧
    2021-05-05
  • Java spring单点登录系统

    Java spring单点登录系统

    这篇文章主要介绍了Java spring单点登录系统,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-09-09
  • 细品Java8中hashCode方法的使用

    细品Java8中hashCode方法的使用

    这篇文章主要介绍了细品Java8中hashCode方法的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • springboot中mybatis多数据源动态切换实现

    springboot中mybatis多数据源动态切换实现

    在开发中,动态数据源配置还是用的比较多的,比如在多数据源使用方面,又或者是在多个DB之间切换方面。这里给出一个动态数据源的配置方案,感兴趣的可以了解一下
    2021-07-07
  • springboot项目接入第三方qq邮箱验证登录的全过程

    springboot项目接入第三方qq邮箱验证登录的全过程

    互联网发展到现在,相必大家都知道发送邮件应该是网站的必备功能之一,下面这篇文章主要给大家介绍了关于springboot项目接入第三方qq邮箱验证登录的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-04-04
  • servlet的url-pattern匹配规则详细描述(小结)

    servlet的url-pattern匹配规则详细描述(小结)

    在利用servlet或Filter进行url请求的匹配时,很关键的一点就是匹配规则。这篇文章主要介绍了servlet的url-pattern匹配规则详细描述(小结),非常具有实用价值,需要的朋友可以参考下
    2018-07-07
  • 使用springboot开发的第一个web入门程序的实现

    使用springboot开发的第一个web入门程序的实现

    这篇文章主要介绍了使用springboot开发的第一个web入门程序的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • SpringCloud Eureka Provider及Consumer的实现

    SpringCloud Eureka Provider及Consumer的实现

    这篇文章主要介绍了SpringCloud Eureka 提供者及调用者的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • SpringBoot如何优雅的输出异常信息

    SpringBoot如何优雅的输出异常信息

    在Java中,异常(Exception)是Java程序在运行过程中出现的一种特殊情况,会中断正常的程序流程,异常可以是运行时错误,也可以是编程错误,本文将给大家详细的介绍一下SpringBoot如何优雅的输出异常信息,需要的朋友可以参考下
    2023-09-09
  • Java多线程中的Phaser使用解析

    Java多线程中的Phaser使用解析

    这篇文章主要介绍了Java多线程中的Phaser使用解析,java多线程技术提供了Phaser工具类,Phaser表示“阶段器”,用来解决控制多个线程分阶段共同完成任务的情景问题,其作用相比CountDownLatch和CyclicBarrier更加灵活,需要的朋友可以参考下
    2023-11-11

最新评论