[JSP] - PreparedStatement

오동훈·2021년 4월 16일
0

JSP

목록 보기
5/6

1. Statement 📕

  • statement 인터페이스를 구현한 객체로 항상 인수가 없는 Connection 클래스의 createStatement() 메소드를 호출함으로써 얻어진다.
  • 일단 statement 객체를 생성하면 statement 객체의 executeQuery() 메소드를 호출하여 sql 질의를 실행시킬 수 있다. 메소드의 인수로는 sql 질의의 문장을 담은 String 객체를 전달한다.
  • statement 객체는 단순한 질의문을 사용할 경우에 좋다.

2. PreparedStatement 📙

  • Connection 객체의 PreparedStatement() 메소드를 사용하여 생성한다.
특징StatementPreparedStatement
장점단순한 질의문을 사용할 경우에 좋다. 동일한 질의문을 특정 값만 바꾸어서 여러번 실행해야 할 때,
많은 데이터를 다루기 때문에 질의문을 정리해야 할 필요가 있을때,
인수가 많아서 질의문을 정리해야 될 필요가 있을때 사용하면 유용함  
차이점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();
}
profile
삽질의 기록들🐥

0개의 댓글