Java

PrepareStatement

hs_developer 2022. 7. 4. 11:40

Statement로 데이터베이스 연동 시 연동 할 때마다 DBM에서 SQL문을 다시 컴파일 해야 하므로 속도가 느리다는 단점이 있다.

 

반면에, PrepareStatement 인터페이스는 컴파일된 SQL문을 DBMS에 전달하여 성능을 향상시킨다.

 

PrepareStatement 인터페이스는 실행하려는 SQL문에 '?'를 넣을 수 있다. 즉, '?' 값만 바꿔서 쉽게 설정 가능하다. Statement보다 SQL문을 작성하기가 더 간단해진다.

 

int number = 1;
String name = "라떼";

stmt = con.createStatement();
stmt.executeQuery("select * from Example where c_no = "+ number +" and c_name = '"+ name +"'");

pstmt = con.prepareStatement("select * from Example where c_no = ? and c_name = ?");
pstmt.setInt(1, number);
pstmt.setString(2, name);

 

기존 Statement를 이용해서 데이터를 넣을 때 값을 직접 작성해야 하지만,

PrepareStatement는 메서드와, '?'를 이용해서 데이터를 전달한다.

 

집어 넣을 데이터가 많아진다면 Statement의 쿼리는 지저분하게 될 것이기에,

PrepareStatement 클래스를 통해 가독성과 효율성을 높일 수 있다.

 

PrepareStatement와 Statement의 차이는 데이터베이스와 연동할 경우에 수행 속도가 더 빠르다는 차이가 있다.

 

 

참고

http://aricode.tistory.com/12

 

'Java' 카테고리의 다른 글

다형성  (0) 2022.06.25
예외처리  (0) 2022.06.25
제네릭스  (0) 2022.06.25
인터페이스, 추상클래스  (0) 2022.06.25
this, super  (0) 2022.06.25