본문 바로가기
교육/Server

JDBC 개발자 수업 75일차(1) - JDBC

by yhyuk 2021. 7. 13.
728x90
반응형

JDBC


JDBC

[ 정의 ]

- Java Database Connectivity

- 자바(응용 프로그램)와 오라클(데이터베이스)간의 연결 시켜주는 기술이다.

- 중간 계층

- 자바 프로그램 <-> 오라클

    a. 직접 연결

    b. 강한 결합

    c. 전용 API 사용

    d. 난이도가 높다.

- 자바 프로그램 <-> JDBC <-> 오라클

    a. 간접 연결

    b. 약한 결합

    c. 범용 API 사용

    d. 난이도가 낮다.(코드가 쉽다.)

 

[ 이클립스(Eclipse)에서 JDBC 환경 설정 ]

- WEB-INF > lib > ojdbc6.jar (오라클 버전에 따라 적합한 JDBC 다운)

- https://www.oracle.com/database/technologies/jdbc-drivers-12c-downloads.html

- SQL-Developer 실행 후 파일 경로를 까먹지 않기 위해 수업 실습 프로젝트 주소에 저장시킨다. (D:/class/server/JSPTset)

- JDBC의 모든 INSERT, UPDATE, DELETE 등은 실행 즉시 자동 커밋 된다. (Auto commit)

 

[ 자바 환경에서 SELECT * FROM 테이블명; 실행 방법? ]

1) 응용 프로그램(Java) 실행

2) 오라클 접속( 자바(JDBC)를 사용해서 오라클 접속 ) : Connection 클래스 사용(JDBC 클래스)

호스트명 서버IP or 도메인주소
포트번호 0000
SID xe
드라이버 thin
사용자명 hr
암호 java1234

3) 질의 : Statement 클래스 사용

  - SQL 사용

  - 반환값이 있는 쿼리: SELECT, 결과셋 -> 업무에 사용한다. -> ResultSet 클래스 사용

  - 반환값이 없는 쿼리: SELECT 빼고 전부

4) 오라클 접속 종료: Connection 클래스 사용

  - commit or rollback

  - 접속 종료

 

[ 이클립스에서 자바(JDBC)를 사용해서 오라클에 접속하기 ]

1) DB 접속: Connection 클래스

Connection conn = null;

 

2) 연결 문자열 생성 : 접속에 필요한 정보로 구성된 문자열

String url = "jdbc:oracle:thin:@localhost:1521:xe";
String id = "hr";
String pw = "java1234";

 

3) 설치한 JDBC 드라이버 로딩( ojdbc6.jar )

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

 

4) 접속

  - Connection 객체 생성(new Connection())

  - 연결함과 동시에 연결정보를 가지고있는 Connection 객체를 반환한다.

conn = DriverManager.getConnection(url, id, pw); // *** 자바와 오라클이 연결(접속 O)
System.out.println(conn.isClosed()); // false

 

5) 접속 종료

conn.close();
System.out.println(conn.isClosed()); // true

 

- 전체코드

public static void main(String[] args) {
	
	Connection conn = null;

	String url = "jdbc:oracle:thin:@localhost:1521:xe";
	String id = "hr";
	String pw = "java1234";
	
	try {
		
		Class.forName("oracle.jdbc.driver.OracleDriver");
		
		conn = DriverManager.getConnection(url, id, pw);
		System.out.println(conn.isClosed()); // false
		
		conn.close();
		System.out.println(conn.isClosed()); // true
			
	} catch(Exception e ) {
		e.printStackTrace();
	}
}

 

- 보편적으로 DB가 필요할 때마다 Main에서 위에 전체 코드 처럼 작성하는 것이 아닌, 따로 DB클래스를 만들어서 사용한다. ( 앞으로 실습은 DBUtil.open() 을 사용해서 할 예정이다. )

public class DBUtil {
    public static Connection open() {

        Connection conn = null;

        String url = "jdbc:oracle:thin:@localhost:1521:xe";
        String id = "hr";
        String pw = "java1234";

        try {

            Class.forName("oracle.jdbc.driver.OracleDriver");
            conn = DriverManager.getConnection(url, id, pw);

            return conn;

        } catch (Exception e) {
            e.printStackTrace();
        }

        return null;
    }
}

 

728x90
반응형

댓글