[JDBC] AgensGraph connects to Tibero using JDBC Driver

Ja L·2023년 7월 6일
0

[AgensGraph]

목록 보기
2/5
  1. 서버에 JAVA 설치 (기존에 설치 되어있으니 생략)

$ which java
/bin/java

  1. 환경변수 설정 (통일부 환경에 맞게 이미 설정되어 있을 것으로 예상)

$ vi /etc/profile
------------------------------------------------ 개인 서버 환경 예시입니다.

JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.372.b07-1.el7_9.x86_64
PATH=$PATH:$JAVA_HOME/bin
CLASSPATH=$JAVA_HOME/jre/lib:$JAVA_HOME/lib/jrt-fs.jar:$JAVA_HOME/lib/tibero6-jdbc.jar

export JAVA_HOME PATH CLASSPATH

$ source /etc/profile

  1. jdbc.jar 파일을 JAVA_HOME/jre/lib/ext 경로로 복사 (환경마다 경로는 다를 수 있음, java1.8.0 버전에서는 ext 디렉토리인 경우가 대부분) tibero6-jdbc.jar 와 postgresql-42.6.0.jar 파일을 $JAVA_HOME/jre/lib/ext 경로로 복사 cp tibero6-jdbc.jar postgresql-42.6.0.jar $JAVA_HOME/jre/lib/ext

  2. 스크립트 수정
    (jdbc_base.java 파일은 실제 실행 스크립트가 아닌 참고용입니다. 스크립트 수정할 때 참고하세요.)

  3. 스크립트 실행
    jdbc.java 파일이 존재하는 디렉토리에서 진행합니다.
    $ javac jdbc.java
    $ java -cp . jdbc

import java.sql.*;

public class jdbc {
    public static void main(String[] args) {
        // Tibero JDBC connection details
        String TIBERO_JDBC_DRIVER = "com.tmax.tibero.jdbc.TbDriver";
        String TIBERO_DB_URL = "jdbc:tibero:thin:@192.168.0.68:8629:tibero";
        String TIBERO_USER = "test";
        String TIBERO_PASS = "0000";

        // PostgreSQL JDBC connection details
        String POSTGRESQL_JDBC_DRIVER = "org.postgresql.Driver";
        String POSTGRESQL_DB_URL = "jdbc:postgresql://localhost:5435/test";
        String POSTGRESQL_USER = "agens";
        String POSTGRESQL_PASS = "0000";

        Connection tiberoConn = null;
        Connection postgresqlConn = null;
        Statement tiberoStmt = null;
        PreparedStatement postgresqlStmt = null;

        try {
            // Register Tibero JDBC driver
            Class.forName(TIBERO_JDBC_DRIVER);

            // Register PostgreSQL JDBC driver
            Class.forName(POSTGRESQL_JDBC_DRIVER);

            // Connect to Tibero
            tiberoConn = DriverManager.getConnection(TIBERO_DB_URL, TIBERO_USER, TIBERO_PASS);

            // Connect to PostgreSQL
            postgresqlConn = DriverManager.getConnection(POSTGRESQL_DB_URL, POSTGRESQL_USER, POSTGRESQL_PASS);

            // Retrieve data from Tibero
            String tiberoQuery = "SELECT * FROM employees";
            tiberoStmt = tiberoConn.createStatement();
            ResultSet tiberoRs = tiberoStmt.executeQuery(tiberoQuery);

            // Transfer data to PostgreSQL
            String postgresqlQuery = "INSERT INTO test (id, name, age) VALUES (?, ?, ?)";
            postgresqlStmt = postgresqlConn.prepareStatement(postgresqlQuery);

            while (tiberoRs.next()) {
                int id = tiberoRs.getInt("id");
                String name = tiberoRs.getString("name");
                int age = tiberoRs.getInt("age");

                postgresqlStmt.setInt(1, id);
                postgresqlStmt.setString(2, name);
                postgresqlStmt.setInt(3, age);
                postgresqlStmt.executeUpdate();
            }

            System.out.println("Data transfer from Tibero to PostgreSQL completed successfully.");

        } catch (SQLException se) {
            se.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                if (tiberoStmt != null)
                    tiberoStmt.close();
                if (postgresqlStmt != null)
                    postgresqlStmt.close();
                if (tiberoConn != null)
                    tiberoConn.close();
                if (postgresqlConn != null)
                    postgresqlConn.close();
            } catch (SQLException se) {
                se.printStackTrace();
            }
        }
    }
}
profile
DB Engineer

0개의 댓글