Linux Shell에서 JDK를 통해서 ojdbc11.jar등을 로드하여 직접 Connection을 생성하고 간단한 executeQuery를 실행해보는 방법입니다

 

# 실행하는 방법 (classpath에 ojdbc11.jar를 포함하여 Main.java 실행)
$ java -cp ojdbc11.jar Main.java

 

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.List;

/**
 * Oracle JDBC 드라이버 로드 및 DB 접속 테스트
 * <p>java -cp ojdbc11.jar Main.java</p>
 */
public class Main {

    public static void main(String[] args) {
        //JDBC 드라이버 로드 테스트
        try {
            Class.forName("oracle.jdbc.driver.OracleDriver");
            System.out.println("oracle.jdbc.driver.OracleDriver Found!");
        } catch (ClassNotFoundException e) {
            System.out.println("Oracle JDBC Driver not found.");
            e.printStackTrace();
            //return;
        }
        try {
            Class.forName("oracle.jdbc.OracleDriver");
            System.out.println("oracle.jdbc.OracleDriver Found!");
        } catch (ClassNotFoundException e) {
            System.out.println("Oracle JDBC Driver not found.");
            e.printStackTrace();
            //return;
        }

        //접속테스트할 DB URL들
        // jdbc:oracle:thin:@(DESCRIPTION=(RETRY_COUNT=20)(RETRY_DELAY=3)(ADDRESS=(PROTOCOL=tcp)(HOST=X.X.X.X)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=XXXXXX))(SECURITY=(SSL_SERVER_DN_MATCH=yes)))
        // jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(FAILOVER=yes)(LOAD_BALANCE=on)(ADDRESS=(PROTOCOL=TCP)(HOST=X.X.X.X)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=X.X.X.X)(PORT=1521)))(CONNECT_DATA=(FAILOVER_MODE=(TYPE=select)(METHOD=basic))(SERVER=dedicated)(SERVICE_NAME=XXXXXX)))
        List<String> urls = List.of(
                "jdbc:oracle:thin:@(...)",
                "jdbc:oracle:thin:@(...)");
        for (String url : urls) {
            testConnectAndQuery(url);
        }
    }

    /**
     * 주어진 URL을 사용하여 Oracle 데이터베이스에 연결하고 간단한 쿼리를 실행합니다.
     * @param url 데이터베이스에 연결하기 위한 JDBC URL
     */
    private static void testConnectAndQuery(String url) {
        System.out.println("Try Connect... " + url);
        try (Connection connection = DriverManager.getConnection(
                url,
                "USERNAME",
                "PASSWORD")) {
            System.out.println("Connected to Oracle database!");
            //쿼리실행
            Statement statement = connection.createStatement();
            ResultSet resultSet = statement.executeQuery("SELECT sysdate FROM dual");
            if (resultSet.next()) {
                System.out.println("SELECT sysdate FROM dual => " + resultSet.getString(1));
            }
            resultSet.close();
            statement.close();
        } catch (SQLException e) {
            System.out.println("Connection failed.");
            e.printStackTrace();
        }
    }
}

+ Recent posts