오라클에서 JDBC계정 생성, 최소한의 권한 부여 |
CREATE USER JDBC IDENTIFIED BY JDBC;
GRANT CONNECT, RESOURCE TO JDBC;
이클립스 환경설정 |
1) 인코딩방식 설정 Window -> Preferences General -> Workspace ( Default(Ms949) => Other(UTF-8) 변경 ) -> Editors -> Text Editors -> Spelling ( Encoding Default(UTF-8) ) |
2) 프로젝트 외부드라이버 사용 설정 프로젝트 우클릭 -> Properties -> Java Build Path ( Libraries탭 -> Add External JARs... -> ojdbc6.jar 파일 열기) |
0단계. oracle에서 TEST 테이블 만들기 |
CREATE TABLE TEST(
TNO NUMBER,
TNAME VARCHAR2(20),
TDATE DATE
);
JDBC 맛보기!!! 이클립스 상에서 자바 소스코드를 사용하여 TEST테이블에 데이터를 추가해보자 |
1단계. 필요한 변수를 먼저 세팅한다. |
int result = 0;
Connection conn = null; //import java.sql.Connection
Statement stmt = null; // import java.sql.Statement
2단계. 실행할 SQL문을 "완성형태"로 작성한다 |
String sql = "INSERT INTO TEST VALUES(1, '박머루', SYSDATE)";
3단계. |
1) JDBC driver 등록 : 외부 드라이버를 사용하기 때문에 어떤 드라이버를 사용해야 하는지 알려주는 작업! oracle 드라이버를 등록한다! Class.forName("oracle.jdbc.driver.OracleDriver"); // 이건 암기해야 함!! 약속!! => 예외처리(ClassNotFoundException) 해주기 2) Connection 객체 생성 => 반환형 connection객체 : 접속하기, DB에 연결 => (필요한 정보 : url, 계정명, 비밀번호) conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe" // url 정보 ,"JDBC", "JDBC" ); // 아이디, 비밀번호 => SQLException 예외처리(Add catch clause to surrounding try) 1) 에서 driver를 등록하는 순간 DriverManager 객체 사용이 가능해지는데, DriverManager 객체의 getConnection 메소드를 이용하여 Connection 객체를 생성할 수 있다! (getConnection 메소드의 반환형이 Connection) -- 여기까지 완료하면 oracle에서 계정 접속 후 워크시트까지 열어놓은 상태 -- 워크시트를 연 다음에는?? insert 구문을 입력한다! -- insert 구문을 실행하기 위해 3) Statement 객체 생성 => 반환형 Statement 객체 Connection 객체 conn에 접근해서 Statement 객체를 생성할 수 있다 stmt = conn.createStatement(); => 반환형 Statement 4) SQL쿼리 날려서 실행 후 결과 받기 Statement 객체에 접근하여 executeUpdate / executeQuery 메소드 실행 result = stmt.executeUpdate(sql); // 반환형이 int이므로 int형 변수 result에 대입 -- 내가 실행할 SQL문이 DML문(INSERT, UPDATE, DELETE)일 경우 => stmt.executeUpdate( " DML문 " ) : 반환형 int형 => 처리된 행의 수가 반환됨 -- 내가 실행할 SQL문이 SELECT문일 경우 => stmt.executeQuery( " SELECT문 " ) : 반환 resultSet (select 조회 결과, 행들의 집합) 5) 조건문으로 트랜잭션 처리 -- COMMIT => 성공했을 경우 -- ROLLBACK => 아닐 경우 6) 예외처리구문 닫아주기 (finally) -- 생성의 역순으로 닫아주기 |
try {
// 1) JDBC driver 등록
Class.forName("oracle.jdbc.driver.OracleDriver");
System.out.println("driver 등록 성공");
// 2) Connection 객체 생성 => SQLException 예외처리(두번째거)
//반환형 : connection 객체, Connection 변수 conn에 대입
// 오라클 버전에 대한 정보
conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe"
, "JDBC", "JDBC");
//아이디, 패스워드
System.out.println("Connection 객체 생성!");
// 3) Statement 객체 생성
stmt = conn.createStatement(); // 반환형 : Statement 객체
System.out.println("Statement 객체 생성!");
// 4) SQL쿼리 날려서 실행 후 결과 받기
result = stmt.executeUpdate(sql);
// 5) 트랜잭션 처리
if(result > 0) { // 성공했을 경우 commit
conn.commit();
} else { // 아닐 경우 rollback
conn.rollback();
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally { // 생성의 역순으로 닫아주기 (stmt > conn) , 예외처리
try {
stmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(result > 0) {
System.out.println("insert 성공");
}else {
System.out.println("insert 실패");
}
}
'국비 > JDBC' 카테고리의 다른 글
[03-1] JDBC PreparedStatement : 회원관리프로그램 (0) | 2022.05.12 |
---|---|
[02-2] JDBC Statement 실습 : 재고관리프로그램 (0) | 2022.05.11 |
[02-1] JDBC Statement 회원관리프로그램 (0) | 2022.05.11 |
[01-2] JDBC 강의화면 캡쳐 (0) | 2022.05.10 |
[01] JDBC (MVC패턴, DAO, Connection, Statement) (0) | 2022.05.10 |