Heim  >  Artikel  >  Datenbank  >  Wie übergebe ich Parameter sicher an ein JDBC PreparedStatement?

Wie übergebe ich Parameter sicher an ein JDBC PreparedStatement?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-25 00:31:10529Durchsuche

How to Safely Pass Parameters to a JDBC PreparedStatement?

Übergabe von Parametern an ein JDBC PreparedStatement

Das Erstellen einer Validierungsklasse für ein Java-Programm erfordert oft die Abfrage einer Datenbank. Der folgende Code versucht, eine bestimmte Zeile aus einer Tabelle auszuwählen, indem er ein PreparedStatement mit einem Parameter verwendet:

public class Validation {

    // ...

    public Validation(String userID) {
        try {
            // ...
            statement = con.prepareStatement(
                    "SELECT * from employee WHERE  userID = " + "''" + userID);
            // ...
        } catch (Exception ex) {
            // ...
        }
    }

    // ...
}

Dieser Code funktioniert jedoch möglicherweise nicht, weil die SQL-Anweisung nicht richtig formatiert ist.

Lösung:

Um einen Parameter korrekt an ein PreparedStatement zu übergeben, verwenden Sie setString() Methode:

statement = con.prepareStatement("SELECT * from employee WHERE  userID = ?");
statement.setString(1, userID);

Diese Methode setzt den Wert des ersten Parameters (?) auf die angegebene Benutzer-ID. Es stellt sicher, dass die Anweisung richtig formatiert ist und verhindert SQL-Injection, eine Sicherheitslücke, die auftritt, wenn bösartiger SQL-Code in eine Abfrage eingefügt wird.

Weitere Informationen zur Verwendung von PreparedStatements finden Sie in den Java-Tutorials.

Das obige ist der detaillierte Inhalt vonWie übergebe ich Parameter sicher an ein JDBC PreparedStatement?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn