| 특징 | 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();
}