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";