Usa el controlador JDBC para conectarte a Spanner Omni

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 bases de datos relacionales. El controlador JDBC de Spanner funciona con Spanner Omni de la misma manera que con Spanner.

Si usas el controlador JDBC, puedes aprovechar las herramientas y bibliotecas estándar compatibles con JDBC con Spanner Omni.

Las conexiones JDBC de Spanner Omni admiten tres modos de seguridad: texto simple, TLS y mTLS.

Para obtener más información, consulta Comienza a usar Spanner en JDBC en la documentación de Spanner.

Consideraciones sobre la URL de conexión

Debido a que Spanner Omni no está conectado directamente a un Google Cloud proyecto, el projects/name componente no es obligatorio en la URL de conexión JDBC. Del mismo modo, debido a que cada implementación de Spanner Omni tiene una sola instancia ya creada (instances/default), el componente instances/name es opcional.

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 modo de seguridad compatible:

Comunicación de texto simple

Para establecer una comunicación de texto simple, usa una URL de conexión similar a la siguiente:

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());
    }

Cuando uses un token de autenticación con TLS o mTLS para un extremo de Spanner Omni, establece la variable de entorno SPANNER_EXPERIMENTAL_HOST_AUTH_TOKEN en la ruta de acceso del token de autenticación generado por la CLI de Spanner Omni. Para las conexiones que no requieren credenciales, deja esta variable sin configurar. No se recomiendan los tokens de autenticación para el uso del cliente, ya que los tokens generados por Spanner Omni vencen y requieren una renovación manual con la CLI de Spanner Omni.

Conexión TLS

Para establecer una conexión TLS, agrega el certificado de la AC al almacén de certificados de confianza de Java o pásalo directamente cuando ejecutes la aplicación como se indica en las instrucciones de TLS del SDK de Java. La URL de JDBC no requiere parámetros adicionales mientras se establece una conexión TLS:

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

Conexión mTLS

Para establecer una conexión mTLS, la URL de JDBC requiere dos parámetros adicionales: clientCertificate y clientKey. Estos parámetros deben especificar las rutas de acceso de los archivos al certificado de cliente y la clave privada del cliente, respectivamente. La clave privada del cliente debe estar en un formato compatible con Java, como se menciona en las instrucciones de mTLS del SDK de Java:

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