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 |