6.9.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