1.3.5.1.2 Maven CentralでのOracle Graph Java Clientの使用

Maven Centralからプロパティ・グラフJavaクライアントを取得できます。

グラフJavaクライアント用のMavenアーティファクトは、次のとおりです。
  • グループ名: com.oracle.database.graph
  • アーティファクト名: opg-client
  • バージョン: 22.4.0

次のステップを実行して、Maven CentralからグラフJavaクライアントを使用できます。

  1. Apache Mavenをシステムにダウンロードしてインストールします。
    詳細は、Apache Maven Projectを参照してください。
  2. mvnコマンドを使用してbinフォルダをPATH変数に追加します。
  3. Mavenプロジェクトをビルドし、プロジェクト・ディレクトリにナビゲートします。
  4. 次のように、pom.xmlファイルを編集します。
    1. 次のように、グラフJavaクライアントの依存関係を追加します。
      <dependencies>
          <dependency>
            <groupId>com.oracle.database.graph</groupId>
            <artifactId>opg-client</artifactId>
            <version>22.4.0</version>
          </dependency>
      </dependencies>

      ノート:

      Gradleをビルド・ツールとして使用している場合、Javaクライアントの同等の依存関係宣言は次のとおりです。

      implementation group: 'com.oracle.database.graph', name: 'opg-client', version: '22.4.0'

    2. JavaクライアントがSpoofax Language Workbenchライブラリに依存してPGQL問合せをコンパイルするため、次のリポジトリを追加します。
      <repositories>
          <repository>
            <id>spoofax</id>
            <url>https://artifacts.metaborg.org/content/repositories/releases</url>
          </repository>
      </repositories>
  5. 必要に応じて、ステップ4をスキップし、<project_dir>/POM.xmlファイルに次の最小POM構成をコピーできます。
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
      <modelVersion>4.0.0</modelVersion>
      <groupId>com.mycompany.app</groupId>
      <artifactId>my-app</artifactId>
      <packaging>jar</packaging>
      <version>1.0-SNAPSHOT</version>
      <name>my-app</name>
      <repositories>
        <repository>
          <id>spoofax</id>
          <url>https://artifacts.metaborg.org/content/repositories/releases</url>
        </repository>       
      </repositories>
      <dependencies>
        <dependency>
          <groupId>com.oracle.database.graph</groupId>
          <artifactId>opg-client</artifactId>
          <version>22.4.0</version>
        </dependency>
      </dependencies>
    </project>
  6. <project_dir>/src/main/java/com/mycompany/appでJavaコードを作成し、Mavenを使用してコンパイルします。
    たとえば、次のコードは<project_dir>/src/main/java/com/mycompany/app/App1.javaファイルに格納されます。
    //The following code sample:
    //1) Connects to Oracle Database using Oracle JDBC Driver 
    //2) Creates a property graph
    //3) Adds a vertex to the graph
    //4) Runs PGQL queries on the graph and prints the output
    //5) Deletes the property graph
    
    package com.mycompany.app;
     
    import java.sql.*;
    import oracle.pg.rdbms.*;
    import oracle.pg.rdbms.pgql.jdbc.*;
    import oracle.pgx.api.*;
     
    public class App1 {
     
      public static void main(String[] args) throws Exception {
        String dbConnectString = args[0];
        String username = args[1];
        String password = args[2];
     
        // 2-tier example: run PGQL against database
        DriverManager.registerDriver(new PgqlJdbcRdbmsDriver());
        String jdbcUrl = "jdbc:oracle:pgql:@" + dbConnectString;
        System.out.println("connecting to " + jdbcUrl);
        try (Connection conn = DriverManager.getConnection(jdbcUrl, username, password)) {
          conn.setAutoCommit(false);
          conn.prepareStatement("CREATE PROPERTY GRAPH test").execute();
          conn.commit();
          conn.prepareStatement("INSERT INTO test VERTEX v LABELS (Foo) PROPERTIES (v.name = 'Baz')").execute();
          conn.commit();
          PreparedStatement stmt = conn.prepareStatement("SELECT v.name FROM MATCH (v) ON test");
          stmt.execute();
          ResultSet rs = stmt.getResultSet();
          while (rs.next()) {
            System.out.println("name = " + rs.getString(1));
          }
          conn.prepareStatement("DROP PROPERTY GRAPH test").execute();
        }
        System.exit(0);
      }
    }

    その後、プロジェクト・ディレクトリにナビゲートして次のコマンドを実行することで、前述のコードをコンパイルして実行できます。

    mvn compile exec:java -Dexec.mainClass="com.mycompany.app.App1"-Dexec.arguments='<db-connect-string>,<username>,<password>'

    正常に処理されると、コードによって次のような出力が生成されます。実際の出力は、<db-connect-string>によって異なる場合があります。

    [INFO] --- exec-maven-plugin:3.1.0:java (default-cli) @ my-app ---
    connecting to jdbc:oracle:pgql:@myhost:1521/oradb
    name = Baz