-- 你不得不承认 在项目中 如果不遇见问题 你是不会去了解#{} 和${} 的区别的-- 我见过好多项目中用的是${} 但是不提倡
-- (1)#将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号。--  如:order by #job#,如果传入的值是programer,那么解析成sql时的值为order by "programer",如果传入的值是job,则解析成的sql为order by "job"。-- #{} 在预处理时,会把参数部分用一个占位符 ? 代替 变成如下的 sql 语句 order by  ?
-- (2) $将传入的数据直接显示生成在sql中。如:order by $user_id$,如果传入的值是programer,那么解析成sql时的值为order by programer, 如果传入的值是job,则解析成的sql为order by job。 --  ${} 只是简单的字符串替换,在动态解析阶段,该 sql 语句会被解析成 order by job
-- (3) #方式在很大程度上能够防止sql注入。
-- (4) $方式无法防止sql注入。
-- (5) $方式一般用于传入数据库对象,例如传入表名 字段名等。
-- (6) 一般能用#的就别用$。  因为 ${} 会导致 sql 注入的问题。


©著作权归作者所有:来自51CTO博客作者木子的昼夜的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. 【微信公众号】【深入解析】DRM和read-mostly locking
  2. MyBatis传入参数为list 数组 map
  3. 【MySql】sql_slave_skip_counter 参数的用法解析
  4. 第104天: Python 解析 XML
  5. Centos下内网DNS主从环境部署记录
  6. Python爬虫进阶必备 | RSA 加密案例解析汇总(一)
  7. PDMan 之数据库逆向解析
  8. 云数据库HBase企业级安全解析
  9. 如何在 Apache Hive 中解析 Json 数组

随机推荐

  1. 动态设置 view 宽高
  2. [置顶] Android 2.3.5源代码 更新至andro
  3. Android Animation Interpolator - Andro
  4. 2010.11.28(3)———android AlertDialog
  5. Android——ImageButton【图片按钮】的点
  6. Android平台mass storage相关代码
  7. Android Module中导入aar
  8. Android中的颜色
  9. WebView控件中的javascript与Android本地
  10. android开机logo制作