Neste documento, mostramos como usar o driver JDBC do Spanner para conectar seus aplicativos Java ao Spanner Omni e executar instruções SQL.
O 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, é possível 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 texto simples, TLS, TLS com credenciais e mTLS.
Para mais informações, consulte Começar a usar o 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ê usa 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 da conexão
Como o Spanner Omni não está conectado diretamente a um projeto doGoogle 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.
Para conectar o driver JDBC ao Spanner Omni em vez do Spanner, adicione 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 a este:
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 do Java ou especifique um truststore personalizado ao executar o aplicativo, conforme descrito em Configurar o truststore do Java. A 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 nas
instruções de 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";