${param}传递的参数会被当成sql语句中的一部分,比如传递表名,字段名

例子:(传入值为id)

order by ${param}

则解析成的sql为:

order by id

#{parm}传入的数据都当成一个字符串,会对自动传入的数据加一个双引号

例子:(传入值为id)

select * from table where name = #{param}

则解析成的sql为:

select * from table where name = "id"

为了安全,能用#的地方就用#方式传参,这样可以有效的防止sql注入攻击

sql注入简介

直接上了百度的例子,感觉一看就清晰明了

某个网站的登录验证的SQL查询代码为:

strSQL = "SELECT * FROM users WHERE (name = '" + userName + "') and (pw = '"+ passWord +"');"

更多相关文章

  1. MySQL系列多表连接查询92及99语法示例详解教程
  2. Linux下MYSQL 5.7 找回root密码的问题(亲测可用)
  3. MySQL 什么时候使用INNER JOIN 或 LEFT JOIN
  4. android上一些方法的区别和用法的注意事项
  5. Android中的FILL_PARENT与WRAP_CONTENT的区别
  6. [Android] ACTION_GET_CONTENT与ACTION_PICK的区别
  7. android上一些方法的区别和用法的注意事项
  8. linearLayout 和 relativeLayout的属性区别
  9. android从服务器下载文件(php+apache+win7+MySql)

随机推荐

  1. java之生成可重复执行的sql脚本
  2. Mysql-5.7 x64安装
  3. sqlite3使用教程1 SQLite 命令
  4. Linux系统下安装MySql 5.7.17 全过程
  5. SQL Sever数据库卡事务
  6. 查询自定义VO对象的sql
  7. 如果没有明确使用ISNULL,则左连接失败
  8. qt sql多重条件查询简便方法
  9. SQLServer行转列的问题
  10. 数据库操作类实现(C#,SqlClient)