Statement的安全问题:Statement的执行其实是直接拼接SQL语句,看成一个整体,然后再一起执行的。
String sql = "xxx";
// ? 预先对SQL语句进行语法的校验
PreparedStatement ps = conn.prepareStatement(sql);
// ? 对应的索引从1开始
ps.setString(1, username);
ps.setString(2, password);
rs = ps.executeQuery();
还可以使用ps.setObject()