En este documento, se muestra cómo usar el controlador JDBC de Spanner para conectar tus aplicaciones de Java a Spanner Omni y ejecutar instrucciones SQL.
La conectividad a bases de datos de Java (JDBC) es una API de Java estándar que proporciona una forma coherente para que las aplicaciones interactúen con las bases de datos relacionales. El controlador JDBC de Spanner funciona con Spanner Omni de la misma manera que lo hace con Spanner.
Con el controlador JDBC, puedes aprovechar las herramientas y bibliotecas estándar compatibles con JDBC con Spanner Omni.
Las conexiones JDBC de Spanner Omni admiten texto sin formato, TLS, TLS con credenciales y mTLS.
Para obtener más información, consulta Comienza a usar Spanner en JDBC en la documentación de Spanner.
Antes de comenzar
Para usar Spanner Omni con el controlador JDBC, usa la versión 2.41.0 o posterior del controlador JDBC de Spanner.
Si usas Maven sin la lista de materiales (BOM), agrega lo siguiente a las dependencias del archivo pom.xml:
<dependency>
<groupId>com.google.cloud</groupId>
<artifactId>google-cloud-spanner-jdbc</artifactId>
<version>2.41.0</version>
</dependency>
Consideraciones sobre la URL de conexión
Dado que Spanner Omni no está conectado directamente a un proyecto deGoogle Cloud , no se requiere el componente projects/name en la URL de conexión de JDBC. Del mismo modo, dado que cada implementación de Spanner Omni tiene una sola instancia ya creada (instances/default), el componente instances/name es opcional.
Para conectar el controlador JDBC a Spanner Omni en lugar de a Spanner, agrega la propiedad ;type=omni a la URL de conexión.
Establece una conexión de Spanner Omni
En los siguientes ejemplos, se muestra cómo establecer una conexión con Spanner Omni usando el controlador JDBC de Spanner para cada configuración de seguridad compatible:
Texto sin formato
Para establecer una conexión de texto sin formato, usa una URL de conexión similar a la siguiente:
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 establecer una conexión TLS, agrega el certificado de la CA al almacén de confianza de Java o especifica un almacén de confianza personalizado cuando ejecutes la aplicación, como se describe en Cómo configurar el almacén de confianza de Java. La URL de JDBC no requiere parámetros de autenticación adicionales:
String url = "jdbc:spanner://HOST_ADDRESS:PORT/databases/DATABASE_ID;type=omni";
TLS con credenciales
Para establecer una conexión TLS con autenticación de nombre de usuario y contraseña, agrega el certificado de la AC al almacén de certificados de confianza de Java como se describe en Configura el almacén de certificados de confianza de Java y especifica las propiedades username y password en la URL de JDBC:
String url = "jdbc:spanner://HOST_ADDRESS:PORT/databases/DATABASE_ID;type=omni;username=USERNAME;password=PASSWORD";
mTLS
Para establecer una conexión de mTLS, agrega el certificado de la CA al almacén de confianza de Java como se describe en Configura el almacén de confianza de Java y especifica los parámetros clientCertificate y clientKey en la URL de JDBC.
La clave privada del cliente debe estar en un formato PKCS#8 compatible con Java, como se describe en las instrucciones de mTLS del SDK de Java:
String url = "jdbc:spanner://HOST_ADDRESS:PORT/databases/DATABASE_ID;type=omni;clientCertificate=PATH_TO_CLIENT_CERT;clientKey=PATH_TO_CLIENT_KEY";