Java 連接 Greenplum


「實戰」助力數據庫開發之接口篇 - Java 連接 Greenplum

Java 作為當前使用最普遍的開發語言,通過JDBC的方式連接 Greenplum 數據庫。目前有兩種JDBC連接包可以實現連接:一種是通過 PostgreSQL 的接口庫連接,另一種就是官方 partner 提供的連接庫( greenplum.jar ),第二種專門針對 Greenplum 進行了優化,性能上稍優,下面針對這兩種方式進行詳細的介紹。

開源 PostgreSQL JDBC 連接 Greenplum

首先需要到 PostgreSQL 的官網上下載與JDK版本對應的JDBC驅動( https://jdbc.postgresql.org/download.html )。我這裡下載的是與JDK 1.8對應的最新版本jar包:postgresql-42.2.9.jar。

然後將jar包加載到對應的項目中,在如下代碼中,最主要的是驅動名稱連接URL地址。

<code>Class.forName("org.postgresql.Driver");c = DriverManager.getConnection("jdbc:postgresql://10.211.55.6:5432/postgres", "gpadmin1", "");/<code>

一個採用 PostgreSQL JDBC 的建表操作示例

<code>import java.sql.Connection;import java.sql.DriverManager;import java.sql.Statement;public class PostgreSQLJDBC {    public static void main(String args[]) {        Connection c = null;        Statement stmt = null;        try {            Class.forName("org.postgresql.Driver");            c = DriverManager.getConnection("jdbc:postgresql://10.211.55.6:5432/postgres", "gpadmin1", "");            c.setAutoCommit(false);            System.out.println("Opened database successfully");            stmt = c.createStatement();            String sql = "CREATE TABLE STUDENTS " +                    "(ID TEXT PRIMARY KEY     NOT NULL ," +                    " NAME            TEXT    NOT NULL, " +                    " SEX             TEXT    NOT NULL, " +                    " AGE             TEXT    NOT NULL)";            stmt.executeUpdate(sql);            System.out.println("Table created successfully");            stmt.close();            c.commit();            c.close();        } catch (Exception e) {            System.err.println(e.getClass().getName() + ": " + e.getMessage());            System.exit(0);        }    }}/<code>

官方JDBC連接 Greenplum

官方JDBC連接方式與上面操作步驟基本一致,首先需要到 Pivotal 的官網上下載與 Greenplum 版本對應的

JDBC驅動( https://gpdb.docs.pivotal.io/6-3/datadirect/datadirect_jdbc.html#topic_ylk_pbx_2bb )。官方的驅動目前支持到JDK 8,JDBC功能支持到4.0版本。下載解壓後的驅動名稱有點長:PROGRESS_DATADIRECT_JDBC_DRIVER_PIVOTAL_GREENPLUM_5.1.4.000275.jar,我通常習慣將它改為:greenplum.jar,直接mv修改,方便後期維護jar包方便。

接下來也是將jar包加載到對應的項目中,在如下代碼中,注意此時的驅動名稱和連接URL地址與之前的PG驅動可不一樣了。

<code>Class.forName("com.pivotal.jdbc.GreenplumDriver");            c = DriverManager.getConnection("jdbc:pivotal:greenplum://10.211.55.6:5432;;DatabaseName=postgres", "gpadmin1", "");/<code>

一個採用 Greenplum JDBC的建表操作示例

<code>import java.sql.Connection;import java.sql.DriverManager;import java.sql.Statement;public class GreenplumJDBC {    public static void main(String args[]) {        Connection c = null;        Statement stmt = null;        try {            Class.forName("com.pivotal.jdbc.GreenplumDriver");            c = DriverManager.getConnection("jdbc:pivotal:greenplum://10.211.55.6:5432;;DatabaseName=postgres", "gpadmin1", "");            c.setAutoCommit(false);            System.out.println("Opened database successfully");            stmt = c.createStatement();            String sql = "CREATE TABLE STUDENTS " +                    "(ID TEXT PRIMARY KEY     NOT NULL ," +                    " NAME            TEXT    NOT NULL, " +                    " SEX             TEXT    NOT NULL, " +                    " AGE             TEXT    NOT NULL)";            stmt.executeUpdate(sql);            System.out.println("Table created successfully");            stmt.close();            c.commit();            c.close();        } catch (Exception e) {            System.err.println(e.getClass().getName() + ": " + e.getMessage());            System.exit(0);        }    }}/<code>

注意:如果要在同一個數據庫中重複創建表,會報錯:表students已存在,注意這不是例子有錯誤。再次執行例子之前請從數據庫中先刪除表。

其他的增刪改查操作參考JDBC的標準操作即可,如有問題請留言交流。




本系列開發語言連接 Greenplum 方法的文章到此結束了,如果有其他需求也請留言交流。


分享到:


相關文章: