createStatement
createstatement 는 static parsing 으로 sql문을 parsing 할 때 입력된 해당 값을 sql문에 binding하여 같이 parsing 하여 실행한다 static parsing은 sql문과 입력된 값을 함께 파싱 하므로 한번 parsing 된 sql문을 다른 데이터를 입력하여 사용 할 수 없어 해당 서비스에 사용자 수가 많은 경우 메모리 full이 발생할 수 있다createStatement사용시 Statement를 사용하여 sql문에 필요한 데이터를 입력 받고 실행시 발생한 데이터를 ResultSet 에 저장한다
장점 : 가볍다
단점 : parsing된 sql문 사용시 입력된 값이 다를 경우 재사용할 수 없으며 자원의 낭비가 발생할 수 있다
사용법
Statement stmt = con.createStatement();String sql = "insert into member(id, pwd, title, content)”
+”values('33','1111','제목','내용')";
int result = stmt.executeUpdate(sql);
preparedStatement
prepareStatement는 dynamic parsing으로 sql문을 parsing한 후 입력된 해당 값을 parsing된 sql문에 binding하여 실행한다.
dynamic parsing은 sql문을 먼저 parsing하여 입력되는 값이 여러개 일 경우 sql문을 여러번 parsing하지 않고 parsing된 sql문에 원하는 값을 binding하여 사용하므로 자원의 낭비가 적다.
prepareStatement사용 시 PreparedStatement를 사용하여 sql문에 필요한 데이터를 입력 받고 실행 시 발생한 데이터를 ResultSet에 저장한다.
장점 : 값의 binding없이 sql문 만을 parsing하므로 parsing된 sql문의 재사용이 용의하여 자원이 낭비으며 인젝션으로 인한 피해를 줄일 수 있다.
단점 : 무겁다.
pstmt = con.prepareStatement("select b_name, b_title, b_content from board where b_id=?");
pstmt.setString(1, id);
rs = pstmt.executeQuery();
callableStatement
callableStatement는 SQL의 스토어드 프로시저를 실행시키기 위해 사용되는 인터페이스
스토어드프로시저란 query문을 하나의 파일형태로 만들거나 데이터베이스에 저장해 놓고 함수처럼 호출해서 사용 하는 것이다 이것을 이용하면 연속되는 query문에 대해서 매우 빠른 성능을 보인다
장점 : 자바코드에 쿼리문이 들어가지 않아 보다 간결해진다
단점 : 저장프로시져에서 선언한 순서대로 파라미터를 넘겨야 한다
출처: https://bboong100.tistory.com/84 [개발새발:티스토리]
'내생각들' 카테고리의 다른 글
Spring MyBatis SAXParseException 오류... (0) | 2024.07.22 |
---|---|
업무일지... (0) | 2023.08.23 |
brew 로 설치한 프로그램 경로 확인하기 (0) | 2023.01.20 |
인텔리제이 설정 기억하기 (0) | 2023.01.06 |
인텔리제이 학생계정 생성하기-컴퓨터 여러대 가능 (0) | 2023.01.05 |
댓글