MyBatis正在爬的坑
2024-08-27 08:10:04
换了份工作,开始接触Mybatis,开一篇文章记录一下自己遇到的坑
2018-06-20
今天遇到了一个问题,编好的sql语句在数据库可以执行但是写到程序里边就GG,什么问题呢?一直纠结在程序哪里写错了,找的快要死了!!!
select t.* from table_B where t.usr_id in (#{userIds})
sql语句就是如上这句话,参数是经过处理的原参数为(XXX,YYY,OOO)类似模式,处理之后('XXX','YYY','OOO')
报错为什么呢?想通了很简单,想不通很难受
仅仅是因为系统会将你传进来的 参数作为一个字符串处理,等同于(" 'XXX','YYY','OOO' ") (添加空格纯粹是为了看的更清楚)
原sql语句就会变成select t.* from table_B where t.usr_id in (" 'XXX','YYY','OOO' ")
你的理想sql语句为:select t.* from table_B where t.usr_id in ( 'XXX','YYY','OOO' )
SO,你不会得到任何返回结果,而sql语句在数据库的执行是没有丝毫问题的
最新文章
- CSS前5课总结
- 成员变量的隐藏,方法的覆盖,super关键字
- As3 计算两个日期之间的天数差
- CSS3--幽灵按钮特效(实例)
- poj3321Apple Tree(树状数组)
- iOS开发篇-申请开发者账号流程
- SQL约束和字段约束的创建和删除
- [Leetcode] Find the minimum in rotated sorted array
- (简单) UVA 11624 Fire! ,BFS。
- Linux.SSH.修改SSH端口号
- Java基础总结--数组
- 基于 HTML5 的 WebGL 和 VR 技术的 3D 机房数据中心可视化
- sql并集union和union all的区别
- 【C++ Primer 第7章】定义抽象数据类型
- [React] 03 - Intro: react.js in twelve demos
- Git 代码版本还原方法
- LA 4670 Dominating Patterns (AC自动机)
- 利用OpenCV检测手掌(palm)和拳头(fist)
- JS 返回上一页并刷新,但不用重新加载整个页面(ajax实现)
- (第03节)三种ApplcationContext的实现