본문 바로가기

[JAVA] VS CODE 에서 Oracle Wallet 이용해 Oracle Cloud 접근하기

I'm 영서 2022. 4. 17.
반응형

VS코드에서 자바를 사용해 오라클 클라우드에 접속해보자.

 

오라클 클라우드 만드는 법은 정말 많으니 

 

Oracle Wallet을 다운받았고, 이걸 어떻게 접속해야 할지 모르는 사람들을 위해 글을 쓴다.

 

JAVA에서 Oracle에 접근할때는 

드라이버준비

커넥션 연결

쿼리 준비

쿼리 실행

결과값 받기

닫기

의 순서를 가진다..

 

이때 오라클 클라우드 , Oracle Wallet은 기존과 url이 많이 다르기 때문에 문제가 생길 수있고

VS CODE를 사용하는 경우 jar 파일을 임포트 하는게 어려울 수 있다.

 


사전준비

먼저 오라클 드라이버를 다운받고 referenced Libraries 에 넣어줘야한다.

설치링크 : https://www.oracle.com/kr/database/technologies/appdev/jdbc-downloads.html

여기서 + 버튼을 눌러 다운받은 ojdbc.jar 파일을 임포트 할 수 있게 해줘야한다.

이렇게 ojdbc10.jar jar파일이 추가된다.. 이제 이러면 ojdbc 내부에 있는 라이브러리를 사용할 수 있다..

 

본인은 공공 API 데이터를 JSON으로 가져와 해당 데이터를 Oracle에 넣어줄 생각이므로 Json 라이브러리도 추가했다..

 

 


자바를 통해 드라이브를 연결하면 되는데.

이때 문제는 url인데 oracle Cloud 에서 Oracle Wallet을 쓰는 경우

url은

jdbc:oracle:thin:@/*오라클 이름*/?TNS_ADMIN=/*Wallet_orcl 경로*/

로 지정해주면 된다.. 반드시 \ 를 /로 변환해야함!

 

import java.sql.Statement;
import java.util.Properties;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;

public class OraConnection {
    final String driver = "oracle.jdbc.driver.OracleDriver";
    final String url    = "jdbc:oracle:thin:@orcl_medium?TNS_ADMIN=C:/Users/dudtj/OneDrive/OracleCloud/Wallet_orcl";
    final String userid = "PROJ_BLD";
    final String passwd = "aldwlTkfkd1!";

    public void Connect() {
        
        // 드라이버 생성
        Connection con = null;
        Statement stmt = null;
        ResultSet rs = null;
        
        try {
            //1. 드라이브준비
            Class.forName(driver);
            //2. 커넥션 연결
            con = DriverManager.getConnection(url, userid, passwd);
            //3. 쿼리 준비
            String sql = "SELECT 1 FROM DUAL";
            //4. 쿼리 실행
            stmt = (Statement)con.createStatement();
            //5. 결과값 받기
            rs = stmt.executeQuery(sql);
            while (rs.next()) {
                int deptno = rs.getInt(1);
                System
                    .out
                    .println(deptno);
            }

        } catch (Exception ex) {
            System.out.print(ex.getMessage());
            ex.printStackTrace();
        } finally {
            try {
                //6. 닫기
                rs.close();
                stmt.close();
                con.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
}

 

이렇게 하면

잘나온다!

 

다음에는 오라클 드라이버클래스의 connection이 하나만 존재하면 되므로 싱글톤 방식으로 변경하고 

각기능을 객체화 하여 

공공 API를 다운로드 -> DB저장 

의 로직을 구현할 예정이다.

반응형

댓글