반응형

출처:

http://www.java-school.net/jdbc/03.php

http://stackoverflow.com/questions/14535347/what-is-the-difference-between-ojdbc6-jar-and-ojdbc14-jar


데이터베이스를 연결하기 위해서 자바에서는 JDBC라는 API를 제공한다.

JDBC를 이용하면 자바 프로그램에서 직접 데이터베이스를 조작할 수 있다.


1. 먼저 JDBC를 사용하기 위해서는 각 데이터베이스에서 제공하는 드라이버가 필요하다.

오라클의 경우에는 ojdbc#.jar란 이름의 드라이버를 제공한다.

#은 숫자이고 각 자바 버전에 맞는 드라이버를 뜻한다.

즉, ojdbc6은 자바 1.6버전에 최적화되었고 ojdbc7은 자바 1.7에 최적화 되어 있다.

오라클을 설치할 때 같이 설치 되어 있으며, 없다면 밑의 사이트에서 다운받을 수 있다.


http://www.oracle.com/technetwork/database/features/jdbc/jdbc-drivers-12c-download-1958347.html


해보지는 않았으나 다른 데이터베이스도 이와 비슷할 것이다.


2. 프로젝트에 사용하려는 JDBC 라이브러리의 경로를 잡아준다.

나는 툴로 이클립스를 사용하기에 다음과 같이 잡아두었다.


먼저 프로젝트 안에 앞의 라이브러리 파일을 넣은 다음 우클릭하여 Properties를 누른다.




그런 다음 add jar를 눌러 프로젝트 내에 추가한 드라이버 파일을 찾아서 경로를 등록한다.

만약 jar 파일이 아니라면 다른 버튼을 눌러야 할 수도 있다.



3. 다음 코드를 입력한 뒤 실행이 정상적으로 된다면 JDBC와 연결된 것이다.


import java.sql.*;

public class ConnTest {
	public static void main(String[] args) {
		// Connection 객체를 생성한다.
		Connection conn = null;
		
		// 데이터베이스 연결 중 오류 처리를 위해 try-catch로 감싼다.
		try {
			// 드라이버 파일에 있는 클래스를 불러온다.
			Class.forName("oracle.jdbc.driver.OracleDriver");
			// @ 앞부분은 데이터베이스마다 다르다. 그리고 IP주소, 포트, SID를 입력한다.
			String driver = "jdbc:oracle:thin:@localhost:1521/acholyte"; 
			// 계정 이름
			String user = "c##acholyte";
			// 계정 비밀번호
			String pass = "acholyte";
			// 앞의 정보들을 이용해 Connection 객체를 초기화한다.
			conn = DriverManager.getConnection(driver, user, pass);
			System.out.println("Success connecting Oracle!");
		} catch (SQLException se) {
			// SQL 예외일 경우 여기로 온다.
			System.out.println("Fail connecting: " + se);
		} catch (Exception e) {
			System.out.println("Exception1: " + e);
		} finally {
			// 테스트이기 때문에 연결이 정상적으로 되었던 예외가 나왔던 상관없이 종료가 이루어져야 한다.
			// 실제로 사용하기 위해서라면 이 코드는 예외 발생 시에만 불러오게 해야할 것이다.
			if (conn != null) {
				try {
					// Connection 객체를 닫는다.
					conn.close();
					System.out.println("Stop connecting Oracle!");
				} catch (SQLException se) {
					// 닫는 도중 오류가 나면 여기로 오게 된다.
					System.out.println("Exception2: " + se);
				}
			}
		}
	}
}


반응형
Posted by 애콜라이트
l

free counters