노무현 대통령 배너

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 테이블에 무언가 집어넣는것을 해봅시다!


사용자 지정 1

select 문장에서는 executeQuery 메소드를 썼었다.

dml 문장에서는  executeUpdate 메소드를 쓴다.

executeUpdate 메소드는 int 를 리턴한다.

insert, update, delete 는 공통적으로 실행결과가  '1행이 수정되었습니다.' 와 같다.

그러니까 몇행을 insert, update, delete 했는지가 int 형으로 반환된다.


일단 성공적으로 1행이 입력되었다.

다시 실행을 하면~

사용자 지정 2

deptno 가 primarykey 로 잡혀있으므로 무결성 제약조건에 의해

당연하게도 요렇게~ 에러가 난다



080723-3

이번엔 update 를 해보자면...

새로 입력한 행의 dname 을 '모델부' 에서 '요리부' 로 바꿔보자

사용자 지정 aa



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 번같은경우)는 거의 없다.

그리고 일상적인 업무에서  쓰지 않는 것이 옳다.


크리에이티브 커먼즈 라이센스
Creative Commons License

"JDBC" 카테고리의 다른 글


이 글의 관련글
2008/12/03 13:57 2008/12/03 13:57

트랙백을 보내세요

트랙백 주소 :: http://pippen80.cafe24.com/trackback/131

댓글을 달아 주세요

[로그인][오픈아이디란?]
비밀글 (Serect)
댓글 달기 (Submit)