본문 바로가기
프로그래밍 놀이터

Statement 와 PreparedStatement 의 차이

by 돼지왕 왕돼지 2013. 6. 23.
반응형


 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();



반응형

'프로그래밍 놀이터' 카테고리의 다른 글

[3D Graphics] Z 버퍼의 Read / Write 개념  (0) 2012.03.26

댓글