PreparedStatement极大地提高了安全性.
即使到目前为止,仍有一些人连基本的恶意SQL语法都不知道.
String sql = "select * from tb_name where name =' ' and password = ' ' ";
如果我们把 [ 'or'1'='1 ] 作为password传入进来.用户名随意,看看会成为什么?
select * from tb_name = '随意' and passwd = ' ' or '1'='1';
因为'1'='1'肯定成立,所以可以任何通过验证.更有甚者:
而如果你使用预编译语句.你传入的任何内容就不会和原来的语句发生任何匹配的关系.
只要全使用预编译语句,你就用不着对传入的数据做任何过虑.
而如果使用普通的statement,有可能要对drop,;等做费尽心机的判断和过虑.