SooBlending

[JDBC] Eclipse와 DB 연결하기 (Oracle) 본문

Programming/Java

[JDBC] Eclipse와 DB 연결하기 (Oracle)

블랜더 2017. 11. 14. 16:47

<JDBC>  Java DataBase Connectivity  (java.sql패키지)

 

1.DriverManger

  - JVM에서 JDBC전체를 관리하는 class

   (기능: Driver등록, Connection 연결작업...)   

2.Driver 

  - DB를 만드는 Vendor(Oracle, MS-SQL, MySQL,....)를 implements하여

    자신들의 DB를 연결할 수 있는 class를 만드는 인터페이스.    

3.Connection

  - DB와 연결성을 가지고 있는 interface.

4.Statement

  - 실제 SQL문을 사용하기 위하여 Connection으로 부터 받아내는 interface.

5.ResultSet

  - Statement를 통하여 select을 실행하였을때 그 결과 Data를 가지고 있는

     interface

 

<JDBC Programming>

1. Driver를 loading한다.

2. DB와 연결하여 Connection Object를 얻어낸다.

3. Connection으로 부터 SQL문을 실행하기 위한 Statement Object를 생성.

4. Statement Object의 API이용하여 SQL실행.

5. SQL을 실행한 후 결과인 ResultSet Object를 얻는다.

6. ResultSet Object에 있는 결과 자료를 loop를 이용하여 처리한다.

 

 

<연결방법>

1. ojdbc6.jar 파일을 우선 oracle 홈페이지에서 다운받는다.

 

2. ojdbc6.jar 파일을 아래와 같은 경로에 넣어주게 된다면 이클립스 자체에서 파일을 인식하게 된다.

 

3. 나중에 프로젝트를 진행할 시에 위와 같은 방법으로 jar파일을 설정하게 되면 jdk가 너무 무거워져 

문제가 될 수 있기 때문에 아래와 같이 프로젝트의 Properties - Java Build Path - Add External JARs.. 로 추가해주는 것이 좋다.

 

이클립스 lib 추가

 

 

<간단한 예시>

 

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

 

public class JDBCTest {

Connection conn;

Statement stmt;

ResultSet rs;

 

public JDBCTest() {

try {

Class.forName("oracle.jdbc.driver.OracleDriver");

Connection conn;

conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", "scott", "tiger");

stmt = conn.createStatement();

 

// 문제 1) 추가. 

/*String sql = "insert into emp7 values(7000,'홍길동',2000,10)";

String sql2 = "insert into emp7 values(7002,'길라임',3000,20)";

String sql3 = "insert into emp7 values(7004,'김주원',4000,30)";

stmt.executeUpdate(sql);

System.out.println("사원이 추가되었습니다 !");

stmt.executeUpdate(sql2);

System.out.println("사원이 추가되었습니다 !");

stmt.executeUpdate(sql3);

System.out.println("사원이 추가되었습니다 !");*/

 

// 문제 2) 삭제

/*String sql4 = "delete from emp7 where ename like '길라임'";

stmt.executeUpdate(sql4);

System.out.println("사원이 삭제 되었습니다 !");*/

 

// 문제 3) 김주원 사원을 10부서로 이동

/*String sql5 = "update emp7 set deptno=10 where ename like '김주원'";

stmt.executeUpdate(sql5);

 

 

System.out.println("부서가 이동 되었습니다 !");*/

 

// 문제 4) 전체 사원에 대한 정보 출력

String sql6 = "select * from emp7";

ResultSet rs = stmt.executeQuery(sql6);

 

while(rs.next()) {

int empno = rs.getInt("empno");

String ename = rs.getString("ename");

int sal = rs.getInt("sal");

int deptno = rs.getInt("deptno");

 

System.out.println("사원번호 : "+empno + ", 사원이름 : "+ename + ", 급여 : "+ sal + ", 부서번호 : " + deptno);

}

 

} catch (ClassNotFoundException e) {

e.printStackTrace();

} catch (SQLException e) {

e.printStackTrace();

}

}

 

public static void main(String[] args) {

JDBCTest a = new JDBCTest();

}

}

 
DB 확인

 

 

Comments