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注入问题
PreparedStatement和Statement的区别
原文:https://www.cnblogs.com/kyousuke/p/11336452.html