본문 바로가기
자바

자바 JDBC statement 와 preparedstatement

by cdbitmana 2020. 11. 11.

PreparedStatement 와 Statement의 가장 큰 차이점은 캐시(cache) 사용여부이다.

1) 쿼리 문장 분석

2) 컴파일

3) 실행



Statement

String sqlstr = "SELECT name, memo FROM TABLE WHERE num = " + num 
Statement stmt = conn.credateStatement(); 
ResultSet rst = stmt.executeQuerey(sqlstr); 

 

PreparedStatement

String sqlstr = "SELECT name, memo FROM TABLE WHERE num = ? " 
PreparedStatement stmt = conn.prepareStatement(sqlstr); 
pstmt.setInt(1, num);
ResultSet rst = pstmt.executeQuerey(); 

 

쿼리의 내용이 바뀌지 않고 인자 값만 바뀌는 경우 미리 컴파일 된 PreparedStatement가 더 유리하다.

 

장점

Statement에 비해서 반복적인 SQL문을 사용할 경우에 더 빠르다.

(이유 : ?를 제외한 SQL문이 DB에서 미리 컴파일되어져서 대기하고 있기 때문)

DB컬럼타입과 상관없이 ?하나로 표시하면 되므로 개발자가 헷갈리지 않고 쉽다.

 

단점

SQL문마다 PreparedStatement 객체를 각각 생성해줘야 한다. (재사용이 불가능해 새로 생성해야한다. Statement 객체는 SQL문이 달라지더라도 한 개만 생성해서 재사용이 가능하다) 

'자바' 카테고리의 다른 글

자바 JDBC PreparedStatement  (0) 2020.11.11
자바 JDBC statement  (0) 2020.11.11
자바 JDBC 주의사항  (0) 2020.11.11
자바 JDBC ResultSet 명령어  (0) 2020.11.11
자바 JDBC 프로그래밍  (0) 2020.11.11