6.9.1.4.2 Executing PGQL Queries Using JDBC Driver

The Oracle Graph Server and Client Release 21.2.0 includes a JDBC driver which allows you to run PGQL queries directly against the Oracle Database. To use the driver, register the following class at the JDBC driver manager:

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

To make JDBC use the driver, you need to prefix the JDBC URLs with jdbc:oracle:pgql as shown in this example:

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

The part after jdbc:oracle:pgql follows the same syntax as the regular Oracle JDBC thin driver. In other words, you can convert any valid Oracle JDBC thin driver URL into a PGQL driver URL by replacing jdbc:oracle:thin with jdbc:oracle:pgql. Once you obtained a connection object, you can use it to query property graphs using PGQL syntax. For example:

Example 6-11 Executing a PGQL Query using the PGQL JDBC driver

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

Save the preceding code in a file PgqlJdbcTest.java and compile using:

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

The driver is also included in a regular graph server (RPM) install. For example:

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