public static void main()

in tools/custom_java_jdbc_client/src/main/java/com/example/BQSimbaExample.java [57:100]


    public static void main(String[] args) {
        // Parse CLI args
        HashMap<String, String> argMap = commandLineArgParser(args);
        String query = argMap.get("query");  // eg. "SELECT column1, column2 FROM mydataset.mytable;"
        if (query == null) {
            throw new IllegalArgumentException("The 'query' command line argument must be provided, eg. `query=SELECT id FROM mydataset.mytable;`");
        }

        // Get project and dataset values from CLI args, else use defaults configured
        String projectId = Objects.requireNonNullElse(argMap.get("projectId"), "my-billing-project");
        String additionalDataProjects = Objects.requireNonNullElse(argMap.get("additionalDataProjects"),"my-data-project");
        String defaultDataset = Objects.requireNonNullElse(argMap.get("defaultDataset"),"my-dataset");

        // Create OAuth config for Application Default Credentials.
        // For details on setting up ADC, refer to https://cloud.google.com/docs/authentication/provide-credentials-adc.
        OAuthUserConfig oAuthUserConfig = new OAuthUserConfig
                .Builder(OAuthUserType.APPLICATION_DEFAULT_CREDENTIALS, projectId)
                .build();

        // Set configuration options for the query. See the JDBC driver documentation for details (link in README.md).
        HashMap<String, String> configOptions = new HashMap<String, String>();
        configOptions.put("AdditionalProjects", additionalDataProjects);
        configOptions.put("QueryProperties",String.format("dataset_project_id=%s", additionalDataProjects));
        configOptions.put("DefaultDataset", defaultDataset);
        configOptions.put("FilterTablesOnDefaultDataset", "1");

        // Create connection URL containing auth and options to use for the query.
        String connectionUrl = generateConnectionUrl(oAuthUserConfig, configOptions);
        System.out.println("JDBC connection URL: " + connectionUrl);

        // Create the connection, execute the query, and retrieve the results.
        try (Connection conn = DriverManager.getConnection(connectionUrl);
             Statement stmt = conn.createStatement()) {
            System.out.println("Executing query: " + query);
            ResultSet rs = stmt.executeQuery(query);

            while (rs.next()) {
                // Print the first column of each row.
                System.out.println(rs.getString(1));
            }
        } catch (SQLException e) {
            System.err.println("Error connecting to BigQuery: " + e.getMessage());
        }
    }