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