Sie versuchen, eine Validierungsklasse für Ihr Java-Programm zu erstellen, indem Sie eine Verbindung zu einer MySQL-Datenbank herstellen und bestimmte Zeilen basierend auf a abrufen Konstruktorparameter. Ihr Code funktioniert jedoch nicht wie vorgesehen.
Um dieses Problem zu beheben, müssen Sie Ihren Code ändern, um die setString()-Methode zum Festlegen des userID-Parameters zu verwenden. Dies stellt nicht nur sicher, dass die Anweisung korrekt formatiert ist, sondern verhindert auch SQL-Injection, was für die Datenbanksicherheit wichtig ist.
Hier ist das aktualisierte Code-Snippet:
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); } } }
Durch die Einbeziehung dieser Änderungen werden Sie werden in der Lage sein, Parameter effektiv an Ihr JDBC PreparedStatement zu übergeben, wodurch SQL-Injection-Risiken gemindert werden und der korrekte Abruf von Daten aus Ihrer Datenbank sichergestellt wird.
Das obige ist der detaillierte Inhalt vonWie übergebe ich Parameter sicher an ein JDBC PreparedStatement in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!