MyBatis中使用foreach循环的坑及解决
目录
- 使用foreach循环的坑
- 正确写法为
- 忽现的Mybatis foreach失效记录
- 解决方案
使用foreach循环的坑 我们首先看一段MyBatis中使用foreach循环的sql:
SELECT * FROM table where id in#{item}
这段sql执行会添加几个占位符,正确写法foreach写到一行:
正确写法为
SELECT * FROM table where id in#{item}
忽现的Mybatis foreach失效记录 传进来的 list 肯定有值得,本身代码没有问题。 线上也算跑了大半年了。 而且出现的问题时也只在本机上.
mybatis.version=3.2.8
代码:
AND (#{id} OR (GRADE In ('0','1')AND user_type = '5' ))
正确结果应该是:
AND ( id IN ('1','2','3')OR (GRADE In ('0', '1') AND user_type = '5'))
实际结果:
AND ( OR (GRADE In ('0', '1') AND user_type = '5'))
【MyBatis中使用foreach循环的坑及解决】造成SQL 执行语法错误.
复现方式:暂无复现方法
解决方案
随便改了一下Dao.java的一个文件内容(没做实际性的内容改动,ide 重新加载了下Dao). bug就好了. 好了 . 了...
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
推荐阅读
- 热闹中的孤独
- Shell-Bash变量与运算符
- JS中的各种宽高度定义及其应用
- 2021-02-17|2021-02-17 小儿按摩膻中穴-舒缓咳嗽
- 深入理解Go之generate
- 由浅入深理解AOP
- 异地恋中,逐渐适应一个人到底意味着什么()
- 【译】20个更有效地使用谷歌搜索的技巧
- 我眼中的佛系经纪人
- 《魔法科高中的劣等生》第26卷(Invasion篇)发售