6.9.2.4 PGQL SELECT問合せの実行
oracle.pg.rdbms.pgql
パッケージのJava APIを使用して、PGQL SELECT
問合せを実行できます。問合せの実行では、JavaインタフェースPgqlStatement
およびPgqlResultSet
が使用されます。
JShellを使用したプロパティ・グラフ・ビューでのSELECT問合せの実行
- 次のようにJShellを起動してデータベースを操作します。
./bin/opg4j --no_connect
-
次のコマンドを実行してデータベースに接続し、プロパティ・グラフ・ビューで
SELECT
問合せを実行します。opg4j> var jdbcUrl="jdbc:oracle:thin:@<host_name>:<port>/<db_service>" opg4j> var conn = DriverManager.getConnection(jdbcUrl,"<username>","<password>"); opg4j> var pgqlConn = PgqlConnection.getConnection(conn) opg4j> var pgqlStmt = pgqlConn.createStatement() //create a PGQL Statement opg4j> String s = "SELECT n.id FROM MATCH (n:Accounts) ON <pgview> LIMIT 3" opg4j> var rs = pgqlStmt.executeQuery(s) opg4j> rs.print() //Prints the query result set +-----+ | ID | +-----+ | 434 | | 435 | | 436 | +-----+
Javaを使用したプロパティ・グラフ・ビューでのSELECT問合せの実行
次の例に、プロパティ・グラフ・ビューでSELECT
問合せを実行する方法を示します。
import java.sql.Connection;
import java.sql.Statement;
import oracle.pg.rdbms.pgql.PgqlConnection;
import oracle.pg.rdbms.pgql.PgqlResultSet;
import oracle.pg.rdbms.pgql.PgqlStatement;
import oracle.ucp.jdbc.PoolDataSourceFactory;
import oracle.ucp.jdbc.PoolDataSource;
/**
* This example shows how to execute a SELECT quey on a property graph view.
*/
public class ExecuteQueryOnPgView
{
public static void main(String[] args) throws Exception
{
int idx=0;
String host = args[idx++];
String port = args[idx++];
String sid = args[idx++];
String user = args[idx++];
String password = args[idx++];
String pgview = args[idx++];
Connection conn = null;
PgqlStatement pgqlStmt = null;
PgqlResultSet rs = null;
try {
//Get a jdbc connection
PoolDataSource pds = PoolDataSourceFactory.getPoolDataSource();
pds.setConnectionFactoryClassName("oracle.jdbc.pool.OracleDataSource");
pds.setURL("jdbc:oracle:thin:@"+host+":"+port +"/"+sid);
pds.setUser(user);
pds.setPassword(password);
conn = pds.getConnection();
conn.setAutoCommit(false);
// Get a PGQL connection
PgqlConnection pgqlConn = PgqlConnection.getConnection(conn);
// Create a PGQL Statement
pgqlStmt = pgqlConn.createStatement();
// Execute PGQL Query
String query = "SELECT a,b,c,e1,e2,e3 FROM MATCH (a)-[e1]->(b)-[e2]->(c)-[e3]->(a) ON " +pgview + " LIMIT 3";
rs = pgqlStmt.executeQuery(query);
// Print the results
rs.print();
}
finally {
// close the result set
if (rs != null) {
rs.close();
}
// close the statement
if (pgqlStmt != null) {
pgqlStmt.close();
}
// close the connection
if (conn != null) {
conn.close();
}
}
}
}
結果の出力は次のようになります。
+--------------------------------------------------------------------------------------------------------------------------+
| A | B | C | E1 | E2 | E3 |
+--------------------------------------------------------------------------------------------------------------------------+
| ACCOUNTS(998) | ACCOUNTS(781) | ACCOUNTS(71) | TRANSFERS(998,781,1000) | TRANSFERS(781,71,1000) | TRANSFERS(71,998,1000) |
| ACCOUNTS(359) | ACCOUNTS(579) | ACCOUNTS(76) | TRANSFERS(359,579,1000) | TRANSFERS(579,76,1000) | TRANSFERS(76,359,1000) |
| ACCOUNTS(6) | ACCOUNTS(580) | ACCOUNTS(82) | TRANSFERS(6,580,1000) | TRANSFERS(580,82,1000) | TRANSFERS(82,6,1000) |
+--------------------------------------------------------------------------------------------------------------------------+
親トピック: プロパティ・グラフ・ビューに対するPGQL問合せの実行