080723-2
## import 해줄때 각각 따로 import 해주는것이 속도상에서 더 좋다.
import java.sql.*;
대신에
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
하는게 더 좋다고 한다.
DML (Data Manipulation Language) ; 데이터 조작 언어)(update, delete, insert) 를 할것인데....
이놈들은 커밋을 꼭 해주어야한다. 커밋을 해주지 않으면 실제적으로 db 에 적용되지 않는다.
하지만!!
jdbc 에서는 기본적으로 자동 커밋이 되어버린다. (물론 자동커밋이 되지 않게 하는 방법도 존재한다.)
dept 테이블에 무언가 집어넣는것을 해봅시다!
select 문장에서는 executeQuery 메소드를 썼었다.
dml 문장에서는 executeUpdate 메소드를 쓴다.
executeUpdate 메소드는 int 를 리턴한다.
insert, update, delete 는 공통적으로 실행결과가 '1행이 수정되었습니다.' 와 같다.
그러니까 몇행을 insert, update, delete 했는지가 int 형으로 반환된다.
일단 성공적으로 1행이 입력되었다.
다시 실행을 하면~
deptno 가 primarykey 로 잡혀있으므로 무결성 제약조건에 의해
당연하게도 요렇게~ 에러가 난다
080723-3
이번엔 update 를 해보자면...
새로 입력한 행의 dname 을 '모델부' 에서 '요리부' 로 바꿔보자
080723-4
[1] select -> ResultSet rs = stmt.executeQuery(sql);
[2] insert/update/delete (DML)일경우 -> int result = stmt.executeUpdate(sql);
[3] 그외 sql 문일 경우 (alter, create.....) -> boolean result = stmt.execute(sql);
alter, create 같은경우엔 프로그램상에서는 안하는것이 정석!
때문에 주로 쓰는것은 executeQuery, executeUpdate 두가지
모두 execute 를 사용해도 되나... (이놈은 리턴타입이 boolean 이므로 참 거짓 값만 반환)
목적에 따라 골라 사용하여준다.
프로그램상에서 db를 손대는 (3 번같은경우)는 거의 없다.
그리고 일상적인 업무에서 쓰지 않는 것이 옳다.
"JDBC" 카테고리의 다른 글
- 1. Connection (댓글 0개 / 트랙백 0개) 2008/07/22
- JDBC - 08 - 쿼리 분석기를 만들어보자 (2) - ResultSetMetaDa... (댓글 0개 / 트랙백 0개) 2008/12/08
- JDBC - 04 - 커넥션 연결 (3) OracleDataSource (댓글 0개 / 트랙백 0개) 2008/12/01
- JDBC - 03 - 커넥션 연결 (2) DriverManager (댓글 0개 / 트랙백 0개) 2008/12/01
- JDBC 정리 (계속 업데이트) (댓글 0개 / 트랙백 0개) 2008/07/22
- JDBC - 02 - 커넥션 연결 (1) DriverManager (댓글 0개 / 트랙백 0개) 2008/12/01
- JDBC - 07 - 쿼리 분석기를 만들어보자 (1) - ResultSetMetaDa... (댓글 0개 / 트랙백 0개) 2008/12/08
- JDBC - 05 - JDBC 의 기본적인 틀 / ResultSet (댓글 0개 / 트랙백 0개) 2008/12/02
- JDBC - 06 - DML 문장을 날려보자 (1) insert, update (댓글 0개 / 트랙백 0개) 2008/12/03
- 1. Connection (댓글 0개 / 트랙백 0개) 1970/01/01



댓글을 달아 주세요