换了份工作,开始接触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语句在数据库的执行是没有丝毫问题的

最新文章

  1. CSS前5课总结
  2. 成员变量的隐藏,方法的覆盖,super关键字
  3. As3 计算两个日期之间的天数差
  4. CSS3--幽灵按钮特效(实例)
  5. poj3321Apple Tree(树状数组)
  6. iOS开发篇-申请开发者账号流程
  7. SQL约束和字段约束的创建和删除
  8. [Leetcode] Find the minimum in rotated sorted array
  9. (简单) UVA 11624 Fire! ,BFS。
  10. Linux.SSH.修改SSH端口号
  11. Java基础总结--数组
  12. 基于 HTML5 的 WebGL 和 VR 技术的 3D 机房数据中心可视化
  13. sql并集union和union all的区别
  14. 【C++ Primer 第7章】定义抽象数据类型
  15. [React] 03 - Intro: react.js in twelve demos
  16. Git 代码版本还原方法
  17. LA 4670 Dominating Patterns (AC自动机)
  18. 利用OpenCV检测手掌(palm)和拳头(fist)
  19. JS 返回上一页并刷新,但不用重新加载整个页面(ajax实现)
  20. (第03节)三种ApplcationContext的实现

热门文章

  1. 将坐标转化为与X轴正半轴夹角模板
  2. Kotlin——中级篇(二): 属性与字段详解
  3. Mac中pico编辑器的使用方法
  4. 查看linux目录剩余空间大小
  5. Powershell 脚本调用方法
  6. What is Grammar?
  7. thinkphp5, 隐藏index.php
  8. 洛谷 [BJOI2012]最多的方案
  9. 初级dba学习之路参考
  10. 006-基于hyperledger fabric1.4( 官方文档)编写第一个应用【外部nodejs调用】