본문으로 바로가기

자바 DB 연동하기(Oracle)

category Java 개발 이야기 2017. 8. 22. 00:16
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.


JDBC 개념

JDBC(Java Database Connectivity)는 데이터베이스에 접근하여 SQL문을 실행하기 위한 자바 라이브러리를 말합니다.

DB와 연동하기 위해서는 Oracle, Mssql, Mysql에서 제공하는 각각의 JDBC 드라이버가 필요합니다.

JDBC 드라이버는 DBMS와 통신을 담당하는 자바 클래스로 DBMS마다 별도의 JDBC 드라이버가 필요합니다. 드라이버는 jar파일로 제공되고 Oracle, Mssql, Mysql별로 각각의 드라이버가 필요합니다.

저는 Oracle로 테스트를 하기 위해 ojdbc6.jar를 이용하여 테스트를 진행하였습니다.

먼저 필요한 DB의 JDBC 라이브러리를 Import하기 위해 프로젝트를 우클릭 하여 Properties를 클릭합니다.



Properties에서 Java Build Path를 클릭하여

Add External jars를 클릭하여 다운로드한 ojdbc6.jar를 추가합니다.


이렇게 해서 Oracle Jdbc 라이브러리를 임포트 하였습니다. 그럼 이제 Oracle과 Java를 연동하는 것을 테스트하겠습니다. 따로 테이블을 생성하지 않고 연결만 해보겠습니다.



import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
 
public class Main {
 
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        connectionDB();
    }
   
    public static void connectionDB() {
        Connection con = null;
       
        String user = "ktko";
        String password = "0714";
        String url = "jdbc:oracle:thin:@localhost:1521:orcl";
       
        try {

            Class.forName("oracle.jdbc.driver.OracleDriver");
            con = DriverManager.getConnection(url, user, password);
           
            System.out.println("database connection Success.!!");
        } catch (ClassNotFoundException e) {
            e.printStackTrace(); //database driver class Not load
        } catch (SQLException e) {
            e.printStackTrace(); //database connection failed
        } catch (Exception e) {
            e.printStackTrace(); //unknown Exception..
        } finally {
            try {
                if(con != null) con.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}


소스 분석 하기

String user = "ktko"; String password = "0714"; String url = "jdbc:oracle:thin:@localhost:1521:orcl";

먼저 user은 접속할 계정명, password는 계정명에 대한 비밀번호

url은 접속할 DB의 주소를 나타냅니다.


접속할 DB의 주소는 

[JDBC]:[DBMS이름]@[주소]:[포트]:[데이터베이스식별자] 

로 구분되며 DBMS별 URL은 아래와 같습니다.


oracle : jdbc:oracle:thin:@localhost:1521:orcl
mysql : jdbc:mysql://localhost:3306/ktko
MSsql : jdbc:microsoft:sqlserver://localhost:1433;database=ktko

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

class.forName()메서드를 ojdbc6.jar에 있는 OracleDriver을 로딩하는 메서드입니다. DB별  Driver로딩하기 위해 forName()에 들어가야할 값들은 아래와 같습니다.


oracle : oracle.jdbc.driver.OracleDriver

mysql  : com.mysql.jdbc.Driver

MSsql : com.microsoft.sqlserver.jdbc.SQLServerDriver


  1. con = DriverManager.getConnection(url, user, password);   
DriverManager의 getConnection 메소드에 계정과 비밀번호, URL을 전달하여 연결을 시도합니다.
연결이 실패할 경우 SQLException이 발생하게 됩니다.