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의 JDBC ReadyStatement에 매개변수를 안전하게 전달하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!