对比 Statement 和 PrepareStatement 使用 PrepareStatement 避免SQL注入
Statement
一:查询,SQL注入将导致条件过滤无效,直接暴露所有信息。
Connection connection = JDBCUtils.getCon(); //获取连接,省略了连接的步骤
String stuNo = "123456789' OR '1' = '1";
//由于一等于一的原因,此条SQL语句执行后,就是永远为真的情况,会查数据库中所有的字段。
String sql = "SELECT COUNT(*) FROM tb_stu WHERE stu_no ='"+stuNo+"'";
//可能会造成SQL注入
Statement statement = connection.createStatement();//建立连接
ResultSet resultSet = statement.executeQuery(sql);//执行SQL语句
System.out.println("--------statement---------");
while(resultSet.next()){//此处将遍历出数据库第一列的所有信息
System.out.println(resultSet.getStri