본문 바로가기

JAVA/JDBC

JDBC Driver Loading

1.Driver loading

2.Connection(연결)

3.Statement/PreparedStatement

4.SQL문 전송

–ResultSet(Select의 경우)

5.close(1. ResultSet, 2. Statement, 3. Connection)



String url = "jdbc:oracle:thin:@192.168.7.195";//:1521:XE";

String user = "scott";      // ID

String password = "tiger"; // PW

String driveClass = "oracle.jdbc.driver.OracleDriver";


Connection conn = null;

Statement statement = null;

ResultSet resultSet = null;


1. Drive Loading & 

Class.forName(driveClass);    // DriverManager.registeredDrivers();

2. 연결저장 & 연결

conn = DriverManager.getConnection(url,user,password);    //연결된 것 저장

3. statement 생성

statement = conn.createStatement();

4. resultSet!

resultSet = statement.executeQuery("select department_id, department_name, location from department");

5. 닫기

if (resultSet != null) {

resultSet.close();

}


if (statement != null) {

statement.close();

}


if (conn != null) {

conn.close();

}


여기서 알아볼 것은!! 

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

해준다면, 

oracle.jdbc.dirver.OracleDriver 가 로드되고


OracleDriver를 열어보면


static

  {

{...}

      if (defaultDriver == null)

      {

        defaultDriver = new oracle.jdbc.OracleDriver();

        DriverManager.registerDriver(defaultDriver);

      }

{...}

  }


이렇게 들어 있다. 즉, 클래스가 생성되면, DriverManager에 등록이 된다는 말이다!!!

private final static CopyOnWriteArrayList<DriverInfo> registeredDrivers = new CopyOnWriteArrayList<>();

그러면 이 변수에 자동으로 저장이 된다!!


그런데,,, Class.forName(driveClass); 을 하지않아도, 자동으로 등록이 된다!!


JDBC 4.0 / 자바 1.6 이상부터는 

jdk1.6 부터는 javax.tools.JavaCompiler 인터페이스를 통해서 동적으로 컴파일할 수 있고
java.lang.invoke 등을 이용해서 보다 편하게 작업할 수 있습니다.



반응형

'JAVA > JDBC' 카테고리의 다른 글

JDBC의 구성 & 주요 DBMS  (0) 2015.03.11
DAO (Data Access Objects)  (0) 2015.03.09
조인 (JOIN)  (0) 2015.03.03
WHERE절 주요 연산자  (0) 2015.03.03
DCL (Data Control Language) [GRANT / REVOKE]  (0) 2015.03.03