openGauss資料庫JDBC環境連線配置(Eclipse)

語言: CN / TW / HK

1.測試環境

客戶端系統: Windows 10

客戶端軟體: eclipse 2020-09 

Server作業系統:openEuler 20.03 64bit with ARM

資料庫版本: openGauss 2.0.0 

2.準備

2.1 PC端安裝配置JDK11 

DOS視窗輸入“java -version”,檢視JDK版本,確認為JDK11版本。如果未安裝JDK,請

從官方網站下載安裝包並安裝。

根據如下步驟配置系統環境變數:

a. 右鍵單擊我的電腦,選擇屬性

b. 系統頁面左側導航欄單擊高階系統設定

c. 系統屬性頁面,高階頁簽上單擊環境變數

d. 環境變數頁面上,系統變數區域單擊新建編輯“配置系統變數。

2.2 下載JDBC驅動並解壓

下載地址:https://opengauss.obs.cn-south-1.myhuaweicloud.com/2.0.0/x86/openGauss-2.0.0-JDBC.tar.gz

3 進行eclipse配置

啟動eclipse,新建工程並新增JDBC驅動

 

Project name: openGauss-JDBC; JRE: JavaSE-11

 不需要建立“Don’t Create”

 

建立一個lib目錄在openGauss-JDBC專案下

 把jdbc驅動拷貝到lib下邊

 

 載入jdbc驅動

 “Add JARs”

 

 在“Libraries”下,選中需要的postgresql.jar檔案,然後“Apply and Close”

 Jdbc jar已經被正確載入,在“Referenced Libraries”下

 建立“Java Class”

 

 拷貝準備的程式碼到java類中

package gaussjdbc;

//ogtest.java
//演示基於JDBC開發的主要步驟,會涉及建立資料庫、建立表、插入資料等。

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.CallableStatement;

public class Gaussjdbc {

//建立資料庫連線。
public static Connection GetConnection(String username, String passwd) {
String driver = "org.postgresql.Driver";
String sourceURL = "jdbc:postgresql://122.9.34.186:26000/db_tpcc";
Connection conn = null;
try {
  //載入資料庫驅動。
  Class.forName(driver).newInstance();
} catch (Exception e) {
  e.printStackTrace();
  return null;
}

try {
  //建立資料庫連線。
  conn = DriverManager.getConnection(sourceURL, username, passwd);
  System.out.println("Connection succeed!");
} catch (Exception e) {
  e.printStackTrace();
  return null;
}

return conn;
};

//執行普通SQL語句,建立customer_t1表。
public static void CreateTable(Connection conn) {
Statement stmt = null;
try {
  stmt = conn.createStatement();

  //執行普通SQL語句。
  int rc = stmt
      .executeUpdate("CREATE TABLE customer_t1(c_customer_sk INTEGER, c_customer_name VARCHAR(32));");

  stmt.close();
} catch (SQLException e) {
  if (stmt != null) {
    try {
      stmt.close();
    } catch (SQLException e1) {
      e1.printStackTrace();
    }
  }
  e.printStackTrace();
}
}

//執行預處理語句,批量插入資料。
public static void BatchInsertData(Connection conn) {
PreparedStatement pst = null;

try {
  //生成預處理語句。
  pst = conn.prepareStatement("INSERT INTO customer_t1 VALUES (?,?)");
  for (int i = 0; i < 3; i++) {
    //新增引數。
    pst.setInt(1, i);
    pst.setString(2, "data " + i);
    pst.addBatch();
  }
  //執行批處理。
  pst.executeBatch();
  pst.close();
} catch (SQLException e) {
  if (pst != null) {
    try {
      pst.close();
    } catch (SQLException e1) {
    e1.printStackTrace();
    }
  }
  e.printStackTrace();
}
}

//執行預編譯語句,更新資料。
public static void ExecPreparedSQL(Connection conn) {
PreparedStatement pstmt = null;
try {
  pstmt = conn
      .prepareStatement("UPDATE customer_t1 SET c_customer_name = ? WHERE c_customer_sk = 1");
  pstmt.setString(1, "new Data");
  int rowcount = pstmt.executeUpdate();
  pstmt.close();
} catch (SQLException e) {
  if (pstmt != null) {
    try {
      pstmt.close();
    } catch (SQLException e1) {
      e1.printStackTrace();
    }
  }
  e.printStackTrace();
 }
}



/**
* 主程式,逐步呼叫各靜態方法。
* @param args
*/
public static void main(String[] args) {
//建立資料庫連線。
Connection conn = GetConnection("joe", "[email protected]");

//建立表。
CreateTable(conn);

//批插資料。
BatchInsertData(conn);

//執行預編譯語句,更新資料。
ExecPreparedSQL(conn);

//關閉資料庫連線。
try {
  conn.close();
} catch (SQLException e) {
  e.printStackTrace();
}
}
}

 執行java類“Run as -->java application”

測試示例程式碼&檢查執行結果

-- 檢查客戶端執行結果

--檢查資料庫資料變化

程式碼成功執行,且資料庫資料變更正常,即連線環境配置完畢。