转自:
http://www.java265.com/JavaMianJing/202205/16534006123487.html
下文笔者讲述preparedStatement和Statement的区别说明,如下所示- <strong>区别1:效率
- 预编译会话比普通会话对象
- 数据库系统不会对相同的sql语句不会再次编译
- 区别2:安全性
- 可以有效的避免sql注入攻击
- sql注入攻击就是从客户端输入一些非法的特殊字符
- 而使服务器端在构造sql语句的时候仍然能够正确构造
- 从而收集程序和服务器的信息和数据
- 如:“select * from user where userName = ‘” + userName + “ ’ and password =’” + password + “’”
- 如果用户名和密码输入的是’1’ or ‘1’=’1’
- 则生产的sql语句是
- “select * from user where userName = ‘1’ or ‘1’ =’1’ and password =’1’ or ‘1’=’1’
- 这个语句中的where 部分没有起到对数据筛选的作用</strong>
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |