특징 | Statement | PreparedStatement |
---|---|---|
장점 | 단순한 질의문을 사용할 경우에 좋다. | 동일한 질의문을 특정 값만 바꾸어서 여러번 실행해야 할 때, 많은 데이터를 다루기 때문에 질의문을 정리해야 할 필요가 있을때, 인수가 많아서 질의문을 정리해야 될 필요가 있을때 사용하면 유용함 |
차이점 | Statement 객체의 sql은 실행될 때 매번 서버에서 분석 되어야한다. | sql 문장이 미리 컴파일 되고, 실행시간 동안 인수값을 위한 공간을 확보할 수 있다는 점에서 Statement 객체와 다르다. (재사용 가능) |
미리 컴파일되기 때문에 쿼리의 수행 속도가 statement 객체에 비해 빠르다.
String driver="oracle.jdbc.driver.OracleDriver";
String url="jdbc:oracle:thin:@localhost:1521:orcl";
Connection conn=null;
PreparedStatement pstmt=null;
ResultSet rs=null;
try {
Class.forName(driver); //드라이버 이름으로 드라이버를 로드
conn=DriverManager.getConnection(url,"UserId","UserPass");
pstmt=conn.prepareStatement("SELECT * FROM student WHERE num=?");
pstmt.setInt(1, '111');
rs=pstmt.executeQuery();
rs.next();
}catch(Exception e){
e.printStackTrace();
}