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:thin
をjdbc: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