PreparedStatement和Statement的区别

preparedstatement和statement的最大的区别就在于preparedstatement能解决sql注入的问题

而且性能也比statement高

 String sql="select * from user where username = '"+"tim"+"'and  password='"+"123' OR 'a'='a"+"'";
            System.out.println(sql);
            state = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, 1007);
            rs = state.executeQuery(sql);
            if (rs.next()) {
                System.out.println("没有解决sql注入问题");
            }else System.out.println("解决了sql注入问题");

可以看得出来 使用statement如果输入的密码改变了sql语句本来的结构,就会发生超出预期的错误

使用了PreparedStatement,PreparedStatement会将 ' 变成转义字符\' 从而解决sql注入问题

 

posted @ 2019-08-11 20:05  kyousuke  阅读(329)  评论(0)    收藏  举报