# 이 글은 싸이월드 블로그에 내가 작성했던 글을 옮겨온 글이다. #
statement 와 preparedStatement 는 둘 다 쿼리를 날릴 때 사용하는 것은 동일하다.
하지만 이 둘의 차이점은 statement는 sql문을 매 번 컴파일 해서 실행하는 것이고
preparedStatement는 컴파일을 한 상태에서 "?"에 해당하는 부분을 바인딩 한다는 것이다.
예를 들면 statement의 경우는
Statement stmt;
String sql = "select * from board wher id=wind";
stmt = conn.createStatement(sql);
stmt.executeQuery();
이런식으로 사용한다.
그리고 preparedStatement의 경우에는
PreparedStatement pstmt;
String sql = "select * from board wher id=?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, wind); //또는 wind라고 직접 입력하는 대신에 request.getParameter("id"); 등으로 가능
pstmt.executeQuery();
이렇게 사용할 수 있다.
preparedStatement를 이용하는 것이 관리가 더 편리하다.
preparedStatement의 경우 여러 개의 값을 입력 받아온 값으로 설정하기 좋다.
위의 경우에는 id만 가져와서 했지만 password와 함께 받는다면
PreparedStatement pstmt;
String sql = "select * from board wher id=? and password=?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, request.getParameter("id"));
pstmt.setString(2, request.getParameter("password"));
pstmt.executeQuery();
이렇게 사용할 수 있는 것이다. 갯수의 제한은...잘은 모르겠으나(javadoc에는 있으려나?) 나는 16개까지 "?"를 써서 이런 식으로 사용해 봤다.
출처 : 내가 했어!!
'Computer > JSP' 카테고리의 다른 글
자바스크립트를 이용한 페이지 이동 (0) | 2013.11.05 |
---|