728x90
반응형

Statement PreparedStatement

3. 명령문 담을 객체 생성하기(Statement, PreparedStatement)
- Statement자료형 객체인 경우 - PreparedStatement자료형 객체인 경우
Statement (정적쿼리)
1. 단일로 사용될 때 빠른 속도를 지닌다.
2. 쿼리에 인자를 부여x할 수 없다.
3. 매번 컴파일을 수행해야 한다.
4. 쿼리문에 값이 미리 입력되어 있어야 한다.
PreparedStatement (동적쿼리)
1. 여러 번 수행될 때 빠른 속도를 지닌다.
2. 쿼리에 인자를 부여o할 수 있다.
3. 처음 프리컴파일 된 후, 이후에는 컴파일을 수행하지 않음.
4. 쿼리문에 값이 인자로 저장된다.
Statement st = conn.createStatement(); PreparedStatement ps = conn.prepareStatement("SQL명령문 문자열");
4. 명령문 실행 및 데이터 담기
4-1. SELECT명령문 인 경우 (SELECT표구조, ResultSet로)  
ResultSet rs = st.executeQuery(" SELECT 명령문 문자열") ;





ResultSet rs = ps.executeQuery() ;

- rs.next() -> 1줄씩만 담아오는 오라클cursor객체와 유사기능
- while(rs.next()){
    실행코드들...;
  }
4-2. insert, delete, update인 경우(데이터 갱신이 발생됨)- 자동 commit;
st.executeUpdate("명령문 문자열") ;
int result = st.executeUpdate("명령문 문자열") ;
ps.executeUpdate() ;
int result = ps.executeUpdate() ;
  ----바인드 변수가 존재하는 경우
ps.set자료형(바인드변수위치값, 바인드변수 넣을 값) ;
ex) 
ps.setInt(1,10);
ps.setString(2, "Tom");
5. ResultSet객체에서 데이터 가져오기
rs.next() 반드시 해줘야 함.
rs.get자료형(컬럼위치의 값) ; => ex) rs.getInt(1) ;
rs.get자료형("컬럼명") ;  => ex) rs.getString("ename")
6. 자원반납 (객체 닫기)
rs.close (); // ResultSet
st.close (); / ps.close(); // Statement
conn.close(); // Connection

 

728x90
반응형

'[JDBC]' 카테고리의 다른 글

[JDBC] TRANJACTION - COMMIT, ROLLBACK, 원자성  (0) 2024.02.01
[JDBC] ex) [회원정보테이블]  (0) 2024.01.31
[JDBC] DAO, DTO  (0) 2024.01.31
[JDBC] Ex  (0) 2024.01.31
[JDBC] JDBC Setting  (0) 2024.01.29

+ Recent posts