18.6 PGX JDBCドライバを使用したPGQL問合せの実行

Graph Server and Clientリリース24.1.0以降では、PGX JDBCドライバを使用してPGXセッションにアクセスし、グラフ・サーバー(PGX)にロードされるグラフを問い合せることができます。

PGX JDBCドライバを使用するには、次の点に注意してください:

  • PGX JDBCドライバをDriverManagerに登録します:
    import java.sql.DriverManager;
    import oracle.pgx.jdbc.PgxJdbcDriver;
    ...
    DriverManager.registerDriver(new PgxJdbcDriver());
  • 次に示すように、接続オブジェクトを取得するときに、JDBC URLにjdbc:oracle:pgx:接頭辞を追加します:

    Connection conn = DriverManager.getConnection("jdbc:oracle:pgx:@<graph_server_host>:<server_port>", "<username>", "<password>");

例18-5 PGX JDBCドライバの使用

次の例では、PGX JDBCドライバを使用して接続を確立し、基礎となるPGXセッションにアクセスしてグラフをグラフ・サーバー(PGX)にロードし、文を作成し、グラフに対してPGQL問合せを実行します。

import java.sql.*;
import oracle.pgx.jdbc.*;
import oracle.pgx.api.*;

public class PgxJdbcSample {

  public static void main(String[] args) throws Exception {


    String jdbcUrl = "jdbc:oracle:pgx:https://localhost:7007";
    String username = "graphuser";
    String password = "graph";
    
    DriverManager.registerDriver(new PgxJdbcDriver());
    try(Connection conn = DriverManager.getConnection(jdbcUrl, username, password)) {
             if (conn.isWrapperFor(PgxSession.class)) {
                     PgxSession session = conn.unwrap(PgxSession.class);
                     session.readGraphByName("BANK_GRAPH_VIEW", GraphSource.PG_PGQL);
             }
            Statement stmt = conn.createStatement();
            ResultSet rs = stmt.executeQuery("SELECT e.AMOUNT AS AMOUNT FROM MATCH (a IS ACCOUNTS) -[e IS TRANSFERS]-> (b IS ACCOUNTS) ON BANK_GRAPH_VIEW "+
                                             " WHERE a.ID = 179 AND b.ID = 688");
            while(rs.next()){
                 System.out.println("AMOUNT = " + rs.getLong("AMOUNT"));
            }
    }

  }
}

前述のコードの結果の出力は次のようになります:

AMOUNT = 1000

前述のコードを実行する場合は、ランタイム・クラスパスでPGXクライアントJARを指定する必要があります。