Mybatis配置文件中#{ }和${ }的区别
2024-10-06 07:31:27
#{ }和${ }都可以从map中取到相对应的值,
但是
#{ }采取的是预编译的方式(PreparedStatement)来执行sql语句,有效防止了sql注入问题
select * from book where id=? and name = ?
而${ }采用的是拼接sql的方式
select * from book where id = 2 and name ='zhangsan'
这样会存在安全问题
大多数情况下我们使用#{ }的方式来取值,
但是在遇到原生JDBC不能使用占位符的情况下
比如分表操作,排序操作等等
select * from 表名;
这个表名不可以使用占位符,取值的话可以使用${table_name }的方式来获取相应的表名
最新文章
- 5天揭秘js高级技术-第二天
- 我和linux的第二十二天
- 关于WPF中ItemsControl系列控件中Item不能继承父级的DataContext的解决办法
- Python入门笔记(22):Python函数(5):变量作用域与闭包
- MySQL Auto_Increment属性应用
- sql management studio 附加mdf文件出错的解决办法
- 复习:IPC机制
- mysql获取各种日期
- 项目管理实践 -- 健身小管家(Fitness housekeeper)的管理(5)(终结)
- VIM文本替换命令
- php提供的对称加密算法
- UVA - 12050-Palindrome Numbers
- SQL 分组统计 行转列 CASE WHEN 的使用
- 关于【Webpack】的入门使用
- Android开发 - 掌握ConstraintLayout(十一)复杂动画!如此简单!
- Java基础总结01:JDK与JRE概述
- C++ 输入、输出运算符重载
- 【C++ Primer 第10章】再探迭代器
- 使用dig命令解析域名
- 提高solr的搜索速度