ホームページ >データベース >mysql チュートリアル >Java で JDBC PreparedStatement にパラメータを安全に渡す方法

Java で JDBC PreparedStatement にパラメータを安全に渡す方法

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-24 13:40:12623ブラウズ

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

JDBC PreparedStatement にパラメータを渡す

MySQL データベースに接続し、コンストラクターのパラメーター。ただし、コードは意図したとおりに機能しません。

この問題を解決するには、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);
        }
    }
}

これらの変更を組み込むことで、パラメータを JDBC PreparedStatement に効果的に渡すことができるため、SQL インジェクションのリスクが軽減され、データベースからデータを正しく取得できるようになります。

以上がJava で JDBC PreparedStatement にパラメータを安全に渡す方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。