우리가 프린터기를 설치하고 케이블로 연결하는 것 처럼. 혹은 네트워크에서 공유된 프린터기를 찾아 연결하는 것과 같이 DBMS에 저장된 데이터에 접근하기 위해서는 DBMS에 접속을 해야 합니다. 자바에서 DBMS에 접속하기 위해서 DriverManager의 getConnection이라는 static메소드를 제공합니다. getConnection메소드는 매개변수로 전달하는 접속문자열을 보며 어떤 DBMS에 연결해야 하는지 판단합니다.

 

getConnection

1) static메소드이므로 클래스이름을 이용해서 호출합니다.

2) throws하고 있는 SQLException은 Exception의 하위 클래스이므로 문법적으로 Exception에 대한 처리를 해야 합니다.(try~catch이용)

 

3) 매개변수

url : 연결문자열

어떤 DBMS를 쓰느냐에 따라서 다른 형식의 문자열로 작성 : 제조사 홈페이지에서 확인

사용하는 DBMS내부에서 요구하는 형식에 맞게 연결문자열을 작성하면 메소드 내부

분석해서 원하는 데이터를 추출해서 어떤 DBMS에 연결해야 하는지 판단합니다.

 

[오라클]

jdbc:oracle:thin:@ip:port:데이터베이스서비스명

--------------------- ----------------------------

오라클에서 사용하는 오라클 설치시에 셋팅하는 값으로

프로토콜 달라질 수 있으며 express edition은 기본으로 xe

 

ip는 DBMS가 설치되어 있는 PC의 IP를 의미하며 아래와 같이 표현이 가능합니다.

ex) jdbc:oracle:thin:@127.0.0.1:1521:xe

jdbc:oracle:thin:@localhost:1521:xe

jdbc:oracle:thin:@192.168.9.19:1521:xe

 

127.0.0.1과 localhost는 모두 현재 작업 중인 자기 PC를 나타냅니다.

user : 사용자계정

password : 패스워드

 

4) 리턴타입

java.sql.Connection이 리턴

DriverManager클래스의 getConnection메소드는 DB서버에 연결하고 연결한 정보를 객체로

만들어서 리턴한다. 어떤 DBMS에 접속했냐에 따라 모두 다른 객체를 리턴하지만 표준API인

java.sql.Connection의 하위가 될 것이므로 Connection은 인터페이스로 정의되어 있다.

당연히 내부에서는 어떤 DBMS를 사용하냐에 따라 달라질 수 있도록 다형성이 적용되어 있다.

 

5) 사용방법

Connection con = DriverManager.getConnection(url,user,password)

- 어떤 DBMS에 접속하든지 연결정보가 객체로 만들어져 리턴되므로 con이라는 이름의 참조

변수를 통해 해당 DBMS와 연결할 수 있다. 오라클을 사용하는 경우에는 오라클의 연결정보

가 객체로 리턴되고 MySQL을 쓰는 경우 MySQL의 연결 정보가 객체로 리턴된다.

- SQL을 실행하기 위해서도 별도의 객체가 필요하며 이 객체는 Connection에 종속적이다.

따라서 Connection정보를 리턴받지 않으면 이 후 작업을 할 수 없다.

 

 

앞에서 작업했던 ConnectionTest.java에 다음과 같이 코드를 추가한 후 실행합니다.

package jdbc;

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

public class ConnectionTest {
	public static void main(String[] args) {
		String url = "jdbc:oracle:thin:@127.0.0.1:1521:xe";
		String user = "scott";
		String password = "tiger";
		try {
			//1. JDBC드라이버로딩
			Class.forName("oracle.jdbc.driver.OracleDriver");
			System.out.println("드라이버로딩성공");
			//2. 커넥션 설정
			Connection con = 
					DriverManager.getConnection(url, user, password);
			System.out.println("연결성공:"+con);
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} 

	}

}

 

실행하면 다음과 같이 연결성공 메시지가 콘솔에 출력됩니다.

 

메시지에 같이 출력되어 있는 연결객체의 정보를 보면 oracle.jdbc.driver.T4CConnection객체인 것을 확인할 수 있습니다. 여러분들께서 아시는것처럼 Connection은 인터페이스입니다. 우리가 사용하는 DBMS가 오라클이고 오라클드라이버를 인식시키고 로딩했기 때문에 내부에서 동작하고 실행되는 API는 오라클에서 제공한 라이브러리 즉, ojdbc6.jar에 있는 클래스들이겠죠?

 

 

'프로그래밍언어 > Java' 카테고리의 다른 글

JDBC - Statement를 이용해서 SQL실행하기  (2) 2019.06.28
이클립스에서 오라클 접속하기  (1) 2019.06.28
JDBC - 드라이버로딩  (0) 2019.06.25
JDBC개요  (0) 2019.06.25
JDBC환경설정  (0) 2019.06.25

+ Recent posts