태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.
2013.06.23 14:43



 Statement 와 PreparedStatement 의 차이

 


Statement 와 PreparedStatement 의 차이


JDBC 코드를 보면, SQL 문을 날릴 때 Statement를 사용하는 경우도 있고, PreparedStatement 를 사용할 때도 있다. 둘의 차이는 뭘까?



Statement


요녀석은 executeQuery() 나 executeUpdate() 를 실행하는 시점에 파라미터로 SQL문을 전달하는데, 이 때 전달되는 SQL 문은 완성된 형태로 한눈에 무슨 SQL 문인지 파악하기 쉽다. 하지만, 이 녀석은 SQL문을 수행하는 과정에서 매번 컴파일을 하기 때문에 성능상 이슈가 있다. ( 이 컴파일을 Parsing 한다고도 표현한다. )


사용예)

String sql = "select * from users where _id=1";

Statement stmt = conn.createStatement();

ResultSet rs = stmt.executeQuery( sql );




PreparedStatement


요 녀석은 이름에서부터 알 수 있듯이 준비된 Statement 이다. 이 준비는 컴파일(Parsing) 을 이야기하며, 컴파일이 미리 되어있는 녀석이기에 Statement 에 비해 성능상 이점이 있다. 요 녀석은 보통 조건절과 함께 사용되며 재사용이 되는데, ? 부분에만 변화를 주어 지속적으로 SQL을 수행하기 때문에 한눈에 무슨 SQL 문인지 파악하기는 어렵다.





사용예)

String sql = "select * from users where _id=?";

PreparedStatement pstmt = conn.prepareStatement( sql );

pstmt.setInt( 1, 1 );

ResultSet rs = pstmt.executeQuery();


더보기


저작자 표시 비영리 변경 금지
신고

댓글을 달아 주세요


Posted by 돼지왕왕돼지