Skip to main content

Installation and Administration Guide

Privitar Query Engine Example Implementation

The following is an example implementation of the Privitar Query Engine:

package com.privitar.dataplane.services.dynamic.jdbc.queryengine;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
/**
* To run this put the query engine jar on the classpath, plus the jars of all JDBC drivers required
* to connect to underlying databases.
*/
public class QueryEngineExample {
	public static void main(String[] args) throws SQLException {
		Properties properties = new Properties();
		properties.put("remoteUser", "user.name");
		properties.put("remoteUserGroups", "group1,group2,group3");
		properties.put("remoteUserAreIdsExternal", "true");
		properties.put("controlPlaneTarget", "your.controlplane.acme.com:443");
		properties.put("controlPlaneChannelTrustedCertificatePath", "/your/path/config/cp-trusted-cert.crt");
		properties.put("controlPlaneChannelClientAuthJwtSigningKeyPath", "/your/path/config/jwt-key");
		properties.put("dataPlaneId", "3cba2fde-aeaa-4fc5-8278-d1e95fd2efa4");
		properties.put("exchangeId", "6645b90f-b9bc-4ebe-b98d-c7eaa2ab89f7");
		properties.put("request.project", "38fd29ab-40c2-498c-a8b5-ad3fad0c2b0a");
		String connectionId = "9b6c4577-b7cb-475f-98ce-9ed2a01a8d07";
		properties.put("datasource", connectionId);
		try (Connection conn = DriverManager.getConnection("jdbc:privitar-query-engine:", properties);
			Statement statement = conn.createStatement();
			ResultSet resultSet = statement.executeQuery("select * from bank_accounts limit 10")) {
			ResultSetMetaData metaData = resultSet.getMetaData();
			int columnCount = metaData.getColumnCount();
			StringBuilder sb = new StringBuilder();
			for (int i = 1; i <= columnCount; i++) {
				sb.append(metaData.getColumnName(i)).append(" | ");
			}
			sb.append("\n");
			while (resultSet.next()) {
				for (int i = 1; i <= columnCount; i++) {
					sb.append(resultSet.getObject(i)).append(" | ");
				}
				sb.append("\n");
			}
			System.out.println(sb);
		}
	}
}