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

Oracle Graph Server and Clientリリース21.2.0には、Oracle Databaseに対してPGQL問合せを直接実行できるJDBCドライバが含まれています。ドライバを使用するには、次のクラスをJDBCドライバ・マネージャで登録します。

import java.sql.DriverManager;
import oracle.pg.rdbms.pgql.jdbc.PgqlJdbcRdbmsDriver;
...
DriverManager.registerDriver(new PgqlJdbcRdbmsDriver());

JDBCでドライバを使用するには、次の例に示すように、JDBC URLに接頭辞としてjdbc:oracle:pgqlを付ける必要があります。

import java.sql.Connection;
import java.sql.DriverManager;
 
Connection conn = DriverManager.getConnection("jdbc:oracle:pgql:@<DB Host>:<DB Port>/<DB SID>", "<DB Username>", "<DB Password>");

jdbc:oracle:pgql後の部分は、通常のOracle JDBCシン・ドライバと同じ構文に従います。つまり、jdbc:oracle:thinjdbc:oracle:pgqlに置き換えると、有効なOracle JDBCシン・ドライバURLをPGQLドライバURLに変換できます。接続オブジェクトを取得したら、これを使用して、PGQL構文でプロパティ・グラフを問い合せることができます。たとえば:

例6-11 PGQL JDBCドライバを使用したPGQL問合せの実行

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.PreparedStatement;
import oracle.pg.rdbms.pgql.jdbc.PgqlJdbcRdbmsDriver;
  
public class PgqlJdbcTest {
  
  public static void main(String[] args) throws Exception {
  
    DriverManager.registerDriver(new PgqlJdbcRdbmsDriver());
    String jdbcUrl = "jdbc:oracle:pgql:@<DB Host>:<DB Port>/<DB SID>";
    String username = "<DB Username>";
    String password = "<DB Password>";
  
    try (Connection conn = DriverManager.getConnection(jdbcUrl, username, password)) {
      String query = "SELECT n.name FROM MATCH(n) ON test_graph WHERE id(n) = ?";
      PreparedStatement pstmt = conn.prepareStatement(query);
      pstmt.setLong(1, 10L);
      pstmt.execute();
      ResultSet rs = pstmt.getResultSet();
      while(rs.next()){
        System.out.println("NAME = " + rs.getString("name"));
      }
    }
  }
}

前述のコードをファイルPgqlJdbcTest.javaに保存し、次を使用してコンパイルします。

javac -cp "<graph-client>/lib/*" PgqlJdbcTest.java

ドライバは、通常のグラフ・サーバー(RPM)のインストールにも含まれます。たとえば:

javac -cp "/opt/oracle/graph/lib/*" PgqlJdbcTest.java