>  Q&A  >  본문

java - 对于 PreparedStatement ,executeQuery() 不能带有参数的错误

PHP中文网PHP中文网2741일 전578

모든 응답(4)나는 대답할 것이다

  • PHP中文网

    PHP中文网2017-04-18 09:25:18

    PrepareStatement의 사용과정은 다음과 같습니다.

    1. 자리 표시자 SQL 인스턴스화 사용

    2. bindXX 메소드를 호출하여 매개변수 바인딩을 완료하세요

    3. executeUpdate 또는 excuteQuery 메소드를 호출합니다. 매개변수는 1단계와 2단계에서 처리되므로 여기서는 매개변수가 전달되지 않습니다.

    회신하다
    0
  • 巴扎黑

    巴扎黑2017-04-18 09:25:18

    위의 pst에 이미 sql을 전달했습니다. 왜 executQuery에 전달해야 합니까?

    회신하다
    0
  • 怪我咯

    怪我咯2017-04-18 09:25:18

    psr.executeQuery(sql)에서는 이미 매개변수를 전달하여 결과 세트를 얻었으므로 더 이상 매개변수를 전달할 필요가 없습니다.

    회신하다
    0
  • 巴扎黑

    巴扎黑2017-04-18 09:25:18

    PreparedStatement 클래스는 SQL 문을 준비하는 데 사용됩니다.
    예:
    `ResultSet rs = null;
    PreparedStatement loginStatement =

    으아악

    ? 자리 표시자를 나타내려면 setString(int, String)과 같은 메서드를 사용하여 자리 표시자에 대한 값을 설정할 수 있습니다. int 매개변수는 자리 표시자 번호입니다(0부터 시작하지 않으며 수학적인 숫자입니다). 두 번째 매개변수는 해당 자리 표시자(?)를 값으로 대체할 것임을 나타냅니다. 이렇게 하면 데이터베이스에 SQL이 주입되는 것을 방지할 수 있습니다. SQL 문 키워드 는 자리 표시자 로 대체될 수 없다는 점에 주목할 가치가 있습니다. 자리 표시자는 우리가 지정한 문자열을 자동으로 작은따옴표로 묶어서 SQL 문 실행에 실패하게 하기 때문입니다. 휴대폰 코드를 확인하세요

    회신하다
    0
  • 취소회신하다