mybatis中写sql,使用in()遇到的问题
来源:互联网 发布:小米打开数据无法上网 编辑:程序博客网 时间:2024/06/06 14:21
错误演示:
<select id="test" parameterType="java.lang.String" resultMap="BaseResultMap">
select * from temp where id_ in(#{ids})</select>
注意:演示代码中传入的参数格式是:1,2,3,4 这条sql在数据库中可以正常运行,并查出了相关的结果集。但是写在mybatis中,就不能查询出对应的结果。
错误原因:因为mybatis在解析#{}时,把整个#{}解析为一个占位符,虽然传入的参数用“,”号分隔开了,还是被mybatis解析成了一个整体
解决方案:
<select id="test" parameterType="java.lang.String" resultMap="BaseResultMap">
select * from temp where id_ in(${_parameter})</select>
注意:当对应的Mapper接口方法只传入一个参数时,且没有使用@Param注解对参数命名时,我们可以通过${_parameter}形式直接获取传来的参数
问题分析:${}会将传递的参数直接赋值到sql中,但是很容易被sql注入,所以${}接收的参数尽量是数据库中查出来的,而不是页面传递来的!
此外也是看到了一篇相关的博客,对mybatis参数传递和#{} ${}的区别写的很细致,同时感谢作者的分享精神。
http://blog.csdn.net/u010643307/article/details/70148702
阅读全文
0 0
- mybatis中写sql,使用in()遇到的问题
- ibatis中写SQL语句时使用in遇到的问题描述
- 使用MyBatis过程中遇到的问题
- Mybatis中sql in的使用
- Oracle 中使用IN 遇到的问题
- SQL Server中存储过程中使用IN遇到的问题
- 在写Mybatis时遇到的问题:No constructor found in 包名+类名
- 使用mybatis遇到的问题
- MyBatis使用遇到的问题
- mybatis中遇到的问题--mybatis.xml
- 使用JDBC遇到SQL关键字in的问题
- mybatis中使用if语句遇到的问题
- mybatis in的使用问题
- hadoop中使用python写mapreduce遇到的问题
- MyBatis 中in的使用
- mybatis 中in的使用
- sql比较字符的,Mybatis中遇到的符号转化,sql比较语句问题!
- ibatis中使用in写SQL语句
- Java设计模式之一:单例模式
- C/C++运行错误收藏
- Spark RDD、DataFrame和DataSet的区别
- 分布式定时任务调度系统 Saturn 安装部署
- 虚拟机安装过程中出现“长模式”不兼容的错误的解决办法
- mybatis中写sql,使用in()遇到的问题
- Stars----树状数组
- echarts-2.2.7柱状颜色渐变
- OpenCV学习笔记13-图像梯度
- PHP学习
- 2017杭电多校06Rikka with Graph
- html-webpack-plugin 中文api
- laravel操作数据库报错--基础
- 360极速浏览器中的极速模式下,报错:forEach is not a function