Statement
Statement란 실제 데이터베이스에 SQL문을 보내기 위해 필요한 객체이다. 삽입, 수정, 삭제 제, 검색을 처리하는 DML문을 사용할 때는 이 인터페이스를 사용한다. 이 객체는 Connection 객체의 연결 정보를 가져와서 DB에 접근하므로 이 객체를 사용하기 위해서는 접속 상태인 Connection 객체가 먼저 존재해야 한다. Statement 객체에서 자주 사용되는 메소드는 다음 표와 같다.
executeQuery() 메소드의 경우는 SELECT문을 실행할 때 사용되는데 이 메소드는 ResultSet객체를 반환한다. ResultSet 객체는 SELECT 문을 이용하여 테이블로부터 얻어온 데이터(레코드)를 담고 있는 객체라고 할 수 있는데 executeUpdate() 메소드는 삽입,수정,삭제와 관련된 SQL문 실행에 사용되며 수정된 레코드 수를 반환한다. 만약 두 개의 레코드를 삽입하게 되면 executeQueryUpdate() 메소드는 2를 반환하게 된다. 이렇게 반환하는 값으로 모든 레코드가 정상적으로 등록되었는지도 확일할 수 있다.
그리고 자주 사용된다기보다는 필수적으로 사용해야하는 메소드 중 close()메소드가 있다. 이 메소드는 Statement 객체를 모두 사용한 후 메모리에 반환하기 위해 사용된다. 객체를 사용하지 않을 때 반환해주면 메모리가 낭비되는 것을 막을 수 있다.
PreparedStatement
PreparedStatement 객체가 하는 일은 Statement객체와 비슷하다. PreparedStatement 인어페이스가 Statement 인터페이스를 상속받기 때문이다. Statement와 같이 레코드 조작 및 검색 쿼리를 위한 SQL문을 전달하기 위해 쓰인다. 하지만 PreparedStatement를 이용하게 되면 값 매핑 기능을 사용해서 Statement 인터페이스보다 편리하게 SQL문을 전송할 수 있다.
만약 100개 이상의 레코드를 추가하게 된다면 소스 코드 또한 방대하게 늘어나게 될 것이다. 이때 PreparedStatement 객체를 이용한다면 단 한 줄의 SQL문으로 수많은 레코드를 추가할 수 있다. 또한 Statement 객체로 SQL문을 실행할 때는 SQL문을 실행할 때마다 컴파일 단계를 거치지만 PreparedStatement 객체를 사용하면 객체를 생성할 때만 단 한 번 구문 분석(컴파일)을 거치므로 반복적인 SQL 구문을 실행할 때는 PreparedStatement가 훨씬 효율이 좋다.
//여기서부터 PreparedStatement 예제 작성
JSP
0 개의 댓글:
댓글 쓰기