接口篇 – Java连接Greenplum

Java作为当前使用最普遍的开发语言,通过JDBC的方式连接Greenplum数据库。目前有两种JDBC连接包可以实现连接:一种是通过PostgreSQL的接口库连接,另一种就是官方partner提供的连接库(greenplum.jar),第二种专门针对Greenplum进行了优化,性能上稍优,下面针对这两种方式进行详细的介绍。

开源PostgreSQL JDBC连接Greenplum

首先需要到PostgreSQL的官网上下载与JDK版本对应的JDBC驱动。我这里下载的是与JDK 1.8对应的最新版本jar包:postgresql-42.2.9.jar。

然后将jar包加载到对应的项目中,在如下代码中,最主要的是驱动名称连接URL地址。

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

一个采用PG JDBC的建表操作示例

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);
        }
    }
}

官方JDBC连接Greenplum

官方JDBC连接方式与上面操作步骤基本一致,首先需要到Pivotal的官网上下载与Greenplum版本对应的JDBC驱动。官方的驱动目前支持到JDK 8,JDBC功能支持到4.0版本。下载解压后的驱动名称有点长:PROGRESS_DATADIRECT_JDBC_DRIVER_PIVOTAL_GREENPLUM_5.1.4.000275.jar,我通常习惯将它改为:greenplum.jar,直接mv修改,方便后期维护jar包方便。

接下来也是将jar包加载到对应的项目中,在如下代码中,注意此时的驱动名称和连接URL地址与之前的PG驱动可不一样了。

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

一个采用GP JDBC的建表操作示例

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);
        }
    }
}

注意:如果要在同一个数据库中重复创建表,会报错:表students已存在,注意这不是例子有错误。再次执行例子之前请从数据库中先删除表。

其他的增删改查操作参考JDBC的标准操作即可,如有问题请留言交流。

本系列开发语言连接Greenplum方法的文章到此结束了,如果有其他需求也请留言交流。

关注微信公众号

VMware 中国研发中心