首頁 >資料庫 >mysql教程 >如何在 Java 中安全地將參數傳遞給 JDBCPreparedStatement?

如何在 Java 中安全地將參數傳遞給 JDBCPreparedStatement?

Linda Hamilton
Linda Hamilton原創
2024-11-24 13:40:12623瀏覽

How to Safely Pass Parameters to a JDBC PreparedStatement in Java?

將參數傳遞給 JDBCPreparedStatement

您正在嘗試透過連接到 MySQL 資料庫並基於以下內容檢索特定行來為 Java 程式建立驗證類別:建構子參數。但是,您的程式碼未按預期運行。

要解決此問題,您需要修改程式碼以使用 setString() 方法來設定 userID 參數。這不僅可以確保語句格式正確,還可以防止 SQL 注入,這對於資料庫安全性非常重要。

以下是更新的程式碼片段:

import java.sql.*;
import java.sql.PreparedStatement;
import java.sql.Connection;

public class Validation {

    private PreparedStatement statement;
    private Connection con;
    private String x, y;

    public Validation(String userID) {
        try {
            Class.forName("com.mysql.jdbc.Driver");
            con = DriverManager.getConnection(
                    "jdbc:mysql://localhost:3306/test", "root", "");
            statement = con.prepareStatement(
                    "SELECT * from employee WHERE  userID = ?");
            statement.setString(1, userID);
            ResultSet rs = statement.executeQuery();
            while (rs.next()) {
                x = rs.getString(1);
                System.out.print(x);
                System.out.print(" ");
                y = rs.getString(2);
                System.out.println(y);
            }
        } catch (Exception ex) {
            System.out.println(ex);
        }
    }
}

透過合併這些更改,您可以將能夠有效地將參數傳遞給您的JDBCPreparedStatement,降低SQL 注入風險並確保從資料庫中正確檢索資料。

以上是如何在 Java 中安全地將參數傳遞給 JDBCPreparedStatement?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn