Este documento mostra 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 oferecem suporte a texto simples, TLS, TLS com credenciais e mTLS.
Para mais informações, consulte Introdução ao Spanner no JDBC na documentação do Spanner.
Antes de começar
Para usar o Spanner Omni com o driver JDBC, use a versão 2.41.0 ou mais recente do driver JDBC do Spanner.
Se você usar o Maven sem a lista de materiais (BOM), adicione o seguinte às dependências do arquivo pom.xml:
<dependency>
<groupId>com.google.cloud</groupId>
<artifactId>google-cloud-spanner-jdbc</artifactId>
<version>2.41.0</version>
</dependency>
Considerações sobre o URL de conexão
Como o Spanner Omni não está conectado diretamente a um
Google Cloud projeto, o projects/name
componente 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 instances/name componente é
opcional.
Para conectar o driver JDBC ao Spanner Omni em vez do Spanner, anexe a propriedade ;type=omni ao URL de conexão.
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 configuração de segurança compatível:
Texto simples
Para estabelecer uma conexão de texto simples, use um URL de conexão semelhante ao seguinte:
String url = "jdbc:spanner://HOST_ADDRESS:PORT/databases/DATABASE_ID;usePlainText=true;type=omni";
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());
}
TLS
Para estabelecer uma conexão TLS, adicione o certificado de CA ao truststore Java ou especifique um truststore personalizado ao executar o aplicativo, conforme descrito em Configurar o truststore Java. O URL JDBC não exige outros parâmetros de autenticação:
String url = "jdbc:spanner://HOST_ADDRESS:PORT/databases/DATABASE_ID;type=omni";
TLS com credenciais
Para estabelecer uma conexão TLS com autenticação de nome de usuário e senha, adicione o certificado de CA ao truststore Java, conforme descrito em Configurar o truststore Java, e especifique as propriedades username e password no URL JDBC:
String url = "jdbc:spanner://HOST_ADDRESS:PORT/databases/DATABASE_ID;type=omni;username=USERNAME;password=PASSWORD";
mTLS
Para estabelecer uma conexão mTLS, adicione o certificado de CA ao truststore Java, conforme descrito em Configurar o truststore Java, e especifique os parâmetros clientCertificate e clientKey no URL JDBC.
A chave privada do cliente precisa estar em um formato PKCS#8 compatível com Java, conforme descrito em
nas instruções mTLS do SDK Java:
String url = "jdbc:spanner://HOST_ADDRESS:PORT/databases/DATABASE_ID;type=omni;clientCertificate=PATH_TO_CLIENT_CERT;clientKey=PATH_TO_CLIENT_KEY";