Usar o driver JDBC para se conectar ao Spanner Omni

Neste documento, mostramos como usar o driver JDBC do Spanner para conectar seus aplicativos Java ao Spanner Omni e executar instruções SQL.

A Java Database Connectivity (JDBC) é uma API Java padrão que oferece uma maneira consistente para os aplicativos interagirem com bancos de dados relacionais. O driver JDBC do Spanner funciona com o Spanner Omni da mesma forma que funciona com o Spanner.

Ao usar o driver JDBC, você pode aproveitar ferramentas e bibliotecas padrão compatíveis com JDBC no Spanner Omni.

As conexões JDBC do Spanner Omni são compatíveis com três modos de segurança: texto simples, TLS e mTLS.

Para mais informações, consulte Começar a usar o Spanner no JDBC na documentação do Spanner.

Considerações sobre o URL de conexão

Como o Spanner Omni não está diretamente conectado a um projetoGoogle Cloud , o componente projects/name não é necessário no URL de conexão JDBC. Da mesma forma, como cada implantação do Spanner Omni tem uma única instância já criada (instances/default), o componente instances/name é opcional.

Estabelecer uma conexão do Spanner Omni

Os exemplos a seguir mostram como estabelecer uma conexão com o Spanner Omni usando o driver JDBC do Spanner para cada modo de segurança compatível:

Comunicação em texto simples

Para estabelecer uma comunicação de texto simples, use um URL de conexão semelhante a este:

String url = "jdbc:spanner://HOST_ADDRESS:PORT/databases/DATABASE_ID;usePlainText=true;isExperimentalHost=true";
try {
      java.sql.Connection connection = DriverManager.getConnection(url);
      try {
        ResultSet rs = connection.createStatement().executeQuery("SELECT * FROM Singers");
        while (rs.next()) {
          System.out.print(rs.getLong(1) + "\t");
          System.out.println(rs.getString(2));
        }
      } catch (Exception e) {
        System.out.println(e.getMessage());
      }
    } catch (Exception e) {
      System.out.println(e.getMessage());
    }

Ao usar um token de autenticação com TLS ou mTLS para um endpoint do Spanner Omni, defina a variável de ambiente SPANNER_EXPERIMENTAL_HOST_AUTH_TOKEN como o caminho do token de autenticação gerado pela CLI do Spanner Omni. Para conexões que não exigem credenciais, deixe essa variável sem definição. Não recomendamos o uso de tokens de autenticação para clientes porque os tokens gerados pelo Spanner Omni expiram e exigem renovação manual com a CLI do Spanner Omni.

Conexão TLS

Para estabelecer uma conexão TLS, adicione o certificado de CA ao truststore do Java ou transmita-o diretamente ao executar o aplicativo, conforme instruído nas instruções de TLS do SDK Java. O URL JDBC não exige parâmetros adicionais ao estabelecer uma conexão TLS:

String url = "jdbc:spanner://HOST_ADDRESS:PORT/databases/DATABASE_ID?isExperimentalHost=true";

Conexão mTLS

Para estabelecer uma conexão mTLS, o URL JDBC exige dois parâmetros adicionais: clientCertificate e clientKey. Esses parâmetros precisam especificar os caminhos dos arquivos para o certificado e a chave privada do cliente, respectivamente. A chave privada do cliente precisa estar em um formato compatível com Java, conforme mencionado nas instruções de mTLS do SDK Java:

String url = "jdbc:spanner://HOST_ADDRESS:PORT/databases/DATABASE_ID;clientCertificate=PATH_TO_CLIENT_CERT;clientKey=PATH_TO_CLIENT_KEY;isExperimentalHost=true";