preparedstatement防sql注入
防注入:
就是用户在登陆的时候在语句后面加上 or 1=1
这样无论账号密码是否正确账号都可以登录成功;
这样是极为不安全的行为;
而要防止这样的行为;可以在进行数据库语句执行的时候把statement执行语句转换为preparedstatement语句;
preparedstatement:
1、执行效率更高;
因为在进行PreparedStatement ps = con.prepareStatement(sql);创建的时候已经进行预编译了
它只会执行一遍sql语句,可以重复进行调用,同一类型sql语句不需要重新进行预编译;这样可以大大的提高代码的效率;
2、防注入
它在最开始创建的时候就进行了预编译,如果输入了空格,单引号,or 1=1 的时候就会认为是非法输入;