다음으로 할 작업은, 이클립스에 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) {} } } } }
우선 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) {} } } } }