将参数传递给 JDBCPreparedStatement
为 Java 程序创建验证类通常涉及查询数据库。以下代码尝试使用带有参数的PreparedStatement从表中选择特定行:
public class Validation { // ... public Validation(String userID) { try { // ... statement = con.prepareStatement( "SELECT * from employee WHERE userID = " + "''" + userID); // ... } catch (Exception ex) { // ... } } // ... }
但是,此代码可能无法工作,因为SQL语句的格式不正确。
解决方案:
要正确地将参数传递给PreparedStatement,请使用setString()方法:
statement = con.prepareStatement("SELECT * from employee WHERE userID = ?"); statement.setString(1, userID);
该方法将第一个参数(?)的值设置为指定的用户ID。它确保语句格式正确并防止 SQL 注入,这是一种将恶意 SQL 代码注入查询时出现的安全漏洞。
有关使用PreparedStatements 的更多信息,请参阅 Java 教程。
以上是如何安全地将参数传递给 JDBCPreparedStatement?的详细内容。更多信息请关注PHP中文网其他相关文章!