将参数传递给 JDBCPreparedStatement
尝试通过从数据库获取特定行来验证用户凭据,您遇到了问题Java代码。您的目标是根据传递给 Validation 类的构造函数的参数选择一行。但是,您当前的方法是不成功的。
问题在于您在 SQL 查询中设置 userID 参数的方式。直接将参数值插入查询字符串会使语句容易受到 SQL 注入攻击。此外,它还可能导致格式不正确。
要解决此问题,您应该使用PreparedStatement 类的 setString() 方法。这种技术不仅可以确保语句格式正确,还可以防止 SQL 注入。
正确的代码应该如下所示:
statement = con.prepareStatement("SELECT * from employee WHERE userID = ?"); statement.setString(1, userID);
本质上,您应该参数化 userID值并使用 setString() 方法设置它。这种做法增强了数据库交互的安全性和可靠性。
有关在 Java 中有效使用PreparedStatements 的综合指南,请参阅 Java 教程。
以上是如何安全地将参数传递给 JDBCPreparedStatement 以进行用户身份验证?的详细内容。更多信息请关注PHP中文网其他相关文章!