將參數傳遞給 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中文網其他相關文章!