sql语句中#{}和${}的区别
2019-05-26 17:21
1176 查看
sql语句中#{}和${}的区别
#{}
#
将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号
eg:
order by #user_id#
如果传入的值是1,那么解析成sql时的值为order by “1”
如果传入的值是id,则解析成的sql为order by “id”
${}
$将传入的数据直接显示生成在sql中
eg:
order by userid
如果传入的值是1,那么解析成sql时的值为order by 1
如果传入的值是id,则解析成的sql为order by id
结论:
#方式底层采用预编译方式
PreparedStatement(预编译),能够很大程度防止sql注入;
$方式底层只是
Statement,无法防止Sql注入
$方式一般用于传入数据库对象,例如传入表名.
一般能用#
的就别用$
注意点:
MyBatis排序时使用order by 动态参数时需要注意,用**$**而不是#
参考资料:sql 中 ${} 和 #{}的区别
相关文章推荐
- Sql语句拼接(EXEC和sp_executesql的区别)
- sql语句中left join、inner join中的on与where的区别
- SQL优化 查询语句中,用 inner join 作为过滤条件和用where作为过滤条件的区别
- SQL语句中Union和Union all的区别
- SQL语句Left join 中On和Where的用法区别
- Oracle与MySQL的SQL语句区别
- SQL关于删除的三个语句,DROP;TRUNCATE;DELETE的区别
- sql语句 in和exists的区别
- sql语句中left join和inner join中的on与where的区别分析
- sql 、linq、lambda 查询语句的区别
- Access中SQL语句与其他数据库的区别
- SQL语句Left join 中On和Where的用法区别
- SQL语句中UNION与UNION ALL的区别!
- shopex sdb_goods和sdb_products的区别 商品和货品的区别 商品类型 商品规格 商品属性 商品入库 之间的关系和sql语句 上图
- SQL插入语句中有单引号 && SQL中char nchar varchar nvarchar的区别 && Java中字符(串)和数值类型的转换
- PreparedStatement 与 Statement 的区别 —— 理解动态SQL语句的执行机制
- Sql语句中IN和exists的区别及应用
- [转载]SQL语句中LEFT JOIN ON WHERE和LEFT JOIN ON AND的区别
- sql语句中left join、inner join中的on与where的区别
- sql 、linq、lambda 查询语句的区别