$ which java
/bin/java
$ 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
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
스크립트 수정
(jdbc_base.java 파일은 실제 실행 스크립트가 아닌 참고용입니다. 스크립트 수정할 때 참고하세요.)
스크립트 실행
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();
}
}
}
}