欢迎来到代码驿站!

JAVA代码

当前位置:首页 > 软件编程 > JAVA代码

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

时间:2022-12-04 12:55:17|栏目:JAVA代码|点击:

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:分隔符,表示迭代时每个元素之间以什么分隔

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

上一篇:java管道piped输入流与输出流应用场景案例分析

栏    目:JAVA代码

下一篇:Java类的加载时机

本文标题:mybatis的foreach标签语法报错的解决

本文地址:http://www.codeinn.net/misctech/220498.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有