PreparedStatement 사용방법, PreparedStatement의 객체 생성

CODEDRAGON Development/Java

반응형

 

 

PreparedStatement 사용방법

Statement의 서브 클래스인 PreparedStatement Statement의 모든 메소드를 상속받으면서 PreparedStement인터페이스에서 재정의된 executeQuery(), executeUpdate(), execute()메소드를 가지고 있습니다.

Statement 객체들은 자체에 SQL문을 포함하지 않기 때문에 execute()메소드의 인자로써 제공되어야 하지만 PreparedStement객체들은 이미 이전에 컴파일된 SQL문을 포함하기 때문에 execute()메소드의 인자로 SQL문을 지정하지 않습니다.

 


 

 

PreparedStatement의 객체 생성

Connection인터페이스의 prepareStatement()메소드를 사용하여 생성합니다.

PreparedStatement 객체명 = Connection객체.prepareStatement("SQL");

 

String sql = "select age from test1 where id=?";

PreparedStatement pstmt = con.prepareStatement(sql);

pstmt.setString(1,"codedragon");

ResultSet rs = pstmt.executeUpdate();

 

·       PreparedStatement SQL문을 작성할 때 컬럼 값을 실제로 지정하지 않고, 변수 처리 함으로서 DBMS을 효율적으로 사용합니다.

·       PreparedStatement SQL문은 SQL문의 구조는 같은데 조건문의 조건이 수시로 변할 때 조건의 변수처리를 "?" 문자로 처리하는데 이를 "바인딩 변수"라고 합니다. 바인딩 변수는 반드시 컬럼 명이 아닌 컬럼 값이 와야 합니다.

·       바인딩 변수의 순서는 "?" 의 개수에 의해 결정이 되는데 시작 번호는 1 부터 시작하게 됩니다.

·       PreparedStatement 객체에 지정된 SQL문을 실행하기 전에 SQL문에서 사용한 바인딩 변수의 값을 설정해야 합니다.

·       바인딩 변수에 값을 저장하는 메서드는 오라클의 컬럼 타입에 따라 지정해 주면 됩니다. ResultSet getXXX() 메서드와 유사하게 PreparedStatement 인터페이스에는 바인딩 변수에 값을 저장하는 setXXX() 메서드를 제공하고 있습니다. 바인딩 변수에 지정한 데이터가 String이라면 사용할 메소드는 setString()메소드가 됩니다.

·       setXXX()메소드는 두 개의 인자를 요구하는데 첫 번째 인자는 설정될 바인딩변수의 순서번호이고, 두 번째 인자는 바인딩변수에 설정될 값입니다.

 

setXXX(바인딩변수의 순서번호, );