用MyBatis写sql语句时#{}与${}的区别
2020-07-08 14:59
148 查看
区别:
#{}:
(1)是以预编译的形式,将参数设置到sql语句中的;
(2)PreparedStatement;
(3)防止sql注入;
${}:
(1)取出的值直接拼装在sql语句中;
(2)Statement,会有安全问题;
两者使用场景比较:
大多数情况下,我们取参数的值应该去使用#{};
原生jdbc不支持占位符的地方我们就可以使用${}进行取值;
比如分表、排序等等,按照年份分表拆分:
select * from ${year}_salary where …;
select * from tbl_employee order by ${f_name} ${order};
相关文章推荐
- Mybatis拼接Sql语句异常($与#的区别)
- mybatis中sql语句里面的$和#的区别
- Mybatis中sql语句 # 和 $的区别
- mybatis的分页插件pagehelper-fix使用、数据库分页查询模板sql、总结mysql与oracle语句的区别
- mybatis 学习 二、SQL语句映射文件(2)增删改查、参数、缓存
- mybatis配置SQL语句的方式
- SpringBoot + Mybatis 在控制台输出sql语句 yml
- Mybatis模糊查询和动态sql语句的用法
- mybatis深入理解(一)之 # 与 $ 区别以及 sql 预编译
- mybatis的xml映射文件SQL语句的增删改查、参数、缓存
- sql语句中where与having的区别
- 关于MyBatis的动态SQL语句
- mybatis分页多条件查询指定时间段数据的sql语句
- 在mybatis执行SQL语句之前进行拦击处理实例
- MyBatis学习-使用SqlBuilder生成SQL语句
- 框架-MyBatis动态sql语句
- log4j配置打印mybatis sql语句
- mybatis中sql语句参数添加判断
- oracle清空表sql语句 以及Truncate与delete区别
- Mybatis最入门---分页查询(逻辑分页与SQL语句分页)