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의 차이는 데이터베이스와 연동할 경우에 수행 속도가 더 빠르다는 차이가 있다.
참고
'Java' 카테고리의 다른 글
다형성 (0) | 2022.06.25 |
---|---|
예외처리 (0) | 2022.06.25 |
제네릭스 (0) | 2022.06.25 |
인터페이스, 추상클래스 (0) | 2022.06.25 |
this, super (0) | 2022.06.25 |