[JAVA] 23-2. 이클립스와 SQL 연결 및 DB 관리를 위한 JDBC 사용법 - JDBC 드라이버와 DB 연결

Re_Go·2024년 6월 15일
0

JAVA

목록 보기
33/37
post-thumbnail

2. JDBC 드라이버와 Oracle DataBase 연결

다음으로 할 작업은, 이클립스에 JDBC 드라이버를 다운로드 해준 후 해당 드라이버를 우리가 구축한 Oracle DB와 연동해 주어야 하는데요.

해당 강의 에서 jar 파일 다운로드 및 저장을 알려주고 있기 때문에, 여기서는 이클립스에 작성할 JDBC 코드 하나 하나를 중점적으로 알아보도록 하겠습니다.

package thisisjava;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class ConnectionExample {
	public static void main(String[] args) {
		Connection conn = null; 
		try {
			Class.forName("oracle.jdbc.OracleDriver");

			conn = DriverManager.getConnection(
					"jdbc:oracle:thin:@localhost:1521/orcl",
					"java",
					"oracle"
					);

			System.out.println("연결 성공");
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			if(conn != null) {
				try {
					conn.close();
					System.out.println("연결 끊기");
				} catch (SQLException e) {}
			}
		}
	}
}

2. 드라이버의 클래스 패스 등록

우선 DB(데이터 베이스)와 자바 간의 연결을 위한 연결점(객체)를 만들어줘야 합니다. 이 작업은 sql 패키지(API)의 Connection 인터페이스를 이용하여 지정해주면 됩니다.

// 명시만 하고 연결은 안함.
Connection conn = null; 

그 다음은 try문 안에 ojdbc.jar 파일로 등록한 참고 라이브러리(referenced Libraries)의 오라클 JDBC 드라이버 클래스를 자바 클래스 패스에 다음과 같이 등록을 해야 하는데요.

Java 6버전 까지는 이 드라이버 클래스를 수동으로 JVM(자바 가상 머신) 등록을 해줘야 했으나, 그 이후 버전부터는 DriverManager.getConnection 메서드를 호출할 때 입력되는 JDBC의 url (해당 호스트에 설치되어 있는 DB 경로)정보를 토대로 자동으로 해당 JDBC 드라이버 클래스가 자바 클래스 패스에 등록됩니다.

물론 명시해도 상관은 없습니다.

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

빌드 패스에 등록된 jar 폴더 안에 oracle.jdbc.driver > OracleDriver.class > OracleDriver 순으로 경로를 확인할 수 있습니다.

다음은 conn 변수에 자바의 JDBC API중 하나인 DriverManager의 getConnectio 메서드를 호출해 연결하고자 하는 DB의 정보를 입력해 줍니다. 각각 입력 순서는 경로 > 아이디 > 비밀번호 순입니다.

conn = DriverManager.getConnection(
					"jdbc:oracle:thin:@localhost:1521/orcl",
					"java",
					"oracle"
					);
// 연결이 성공했는지 (메서드 정상 실행)를 확인하는 출력문
System.out.println("연결 성공");

그 다음 catch문을 작성해 예외 코드를 적어줍니다. 하나는 클래스를 찾을 수 없을 경우를 대비하는 ClassNotFoundException를, 또 하나는 연결된 SQL(DB)에 이상이 발생했을 때를 대비하는 SQLException를 적어줍니다.

catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		}

마지막으로 finally 구문으로 연결 유무에 상관없이 현재 연결 상태(conn)가 있는 상태라면 close 메서드를 호출해 연결을 종료합니다.

			if(conn != null) {
				try {
					conn.close();
					System.out.println("연결 끊기");
				} catch (SQLException e) {}
			}

위 코드들을 합치면 자바와 오라클 DB를 연결할 수 있는 구문이 완성됩니다.

package thisisjava;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class ConnectionExample {
	public static void main(String[] args) {

		Connection conn = null;
		try {
			Class.forName("oracle.jdbc.OracleDriver");

			conn = DriverManager.getConnection(
					"jdbc:oracle:thin:@localhost:1521/orcl",
					"java",
					"oracle"
					);

			System.out.println("연결 성공");
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			if(conn != null) {
				try {
					conn.close();
					System.out.println("연결 끊기");
				} catch (SQLException e) {}
			}
		}
	}
}
profile
인생은 본인의 삶을 곱씹어보는 R과 타인의 삶을 배워 나아가는 L의 연속이다.

0개의 댓글