Java Database Connectivity (JDBC)

Java™ Database Connectivity (JDBC) es una API de Java para conectarse e interactuar con bases de datos relacionales.

Las características JDBC se listan en la tabla siguiente:

Tabla| 1. JDBC
Característica Soporte Versiones de Java soportadas Versiones de Enterprise Java soportadas
jdbc-4.0 JDBC versión 4.0
  • Java SE 8
  • Java SE 11
  • Java SE 17
  • Java EE 6
jdbc-4.1 JDBC versión 4.1
  • Java SE 8
  • Java SE 11
  • Java SE 17
  • Java EE 6
  • Java EE 7
jdbc-4.2 JDBC versión 4.2
  • Java SE 8
  • Java SE 11
  • Java SE 17
  • Java EE 6
  • Java EE 7
  • Java EE 8
  • Yakarta EE 8
  • Jakarta EE 9
  • Jakarta EE 10
jdbc-4.3 JDBC versión 4.3
  • Java SE 11
  • Java SE 17
  • Java EE 6
  • Java EE 7
  • Java EE 8
  • Yakarta EE 8
  • Jakarta EE 9
  • Jakarta EE 10
cicsts:jdbc-1.0 CICS para JDBC para conexiones Db2® de tipo 2
  • Java SE 8
  • Java SE 11
  • Java SE 17
  • Java EE 6
  • Java EE 7
  • Java EE 8
  • Yakarta EE 8
  • Jakarta EE 9
  • Jakarta EE 10

Para obtener más información sobre cómo configurar el soporte de JDBC , consulte Configuración de la conectividad de base de datos con JDBC.

Desarrollo de aplicaciones con interacción de base de datos

Existen dos métodos para interactuar con la base de datos Db2 .

Origen de datos

El javax.sql.DataSource se puede buscar en JNDI utilizando el jndiName definido en el elemento de configuración dataSource o cicsts_dataSource . Este objeto javax.sql.DataSource se puede utilizar para obtener un objeto java.sql.Connection para interactuar con la base de datos.

En función de la implementación de javax.sql.DataSource, puede ser importante confirmar o retrotraer la conexión antes de cerrar. Para obtener más información, consulte Diferencias entre las características JDBC de Liberty y la característica CICS JDBC.

Gestor de controladores

La clase java.sql.DriverManager se puede utilizar para que java.sql.Connection interactúe con la base de datos. El URL de conexión es jdbc:default:connection para la conectividad de tipo 2 en CICS. Para obtener más información, consulte Conexión a un origen de datos utilizando la interfaz DriverManager con IBM Data Server Driver for JDBC and SQLJ

Diferencias entre las características JDBC de Liberty y la característica JDBC de CICS

Liberty proporciona las características JDBC jdbc-4.0, jdbc-4.1, jdbc-4.2y jdbc-4.3 para conectarse a diversas bases de datos relacionales. En CICS Liberty, el soporte JDBC de Liberty se puede utilizar para conectarse a una base de datos Db2 a través de CICS DB2CONN con conectividad de tipo 2, o de forma remota con conectividad de tipo 4. Liberty JDBC da soporte a las API java.sql y javax.sql y proporciona implementaciones de javax.xml.DataSource a través de la configuración de dataSource .

CICS proporciona una característica JDBC cicsts:jdbc-1.0 para dar soporte a la conectividad de tipo 2 a través de CICS DB2CONN. CICS da soporte a la API de java.sql y proporciona una implementación de javax.sql.DataSource a través de la configuración de cicsts_dataSource .
Nota: cicsts_dataSource no es totalmente compatible con dataSource. Algunas características de Liberty requieren el uso de un dataSource. Por ejemplo, se debe utilizar un dataSource para la persistencia de batch-1.0 .

CICS y Liberty JDBC dan soporte a transacciones que utilizan la API JDBC . Para la conectividad JDBC de tipo 2, las actualizaciones de Db2 se gestionan como parte de la unidad de trabajo CICS a través del recurso CICS DB2CONN . Liberty y CICS JDBC difieren en cómo se gestionan las conexiones.

LibertadJDBC cerrará automáticamente la conexión después de que se complete el procesamiento, lo que provocará que la transacción se revierta o se confirme, según elcommitOrRollbackOnCleanup atributo de ladataSource elemento. La configuración predeterminada esrollback , entonces un implícitojava.sql.Connection.commit() debe ser llamado, provocando queCICS unidad de trabajo a comprometer.

CICS JDBC está gestionado por la unidad de trabajo CICS . Las actualizaciones de base de datos se confirman o se retrotraen cuando la tarea CICS se confirma o se retrotrae.

Tabla 2. JDBC
Tipo Tipo de conexión autoCommit Comportamiento de limpieza predeterminado
CICS JDBC Tipo 2 false Confirme la UOW de CICS .
JDBC de Liberty Tipo 2 false Retrotraiga la UOW de CICS .
Tipo 4 true o false Confirme la transacción local. La UOW de CICS no se ve afectada.

Se puede utilizar una transacción global para gestionar los orígenes de datos de ámbito transaccional. En las transacciones globales, el comportamiento transaccional para Liberty y CICS javax.sql.DataSource es coherente. Para obtener más información sobre las transacciones globales en Liberty, consulte Java Transaction API (JTA).

Ejemplos

Conexión a una base de datos con la interfaz javax.sql.DataSource , con una configuración dataSource o cicsts_dataSource que especifica el jndiName jdbc/defaultCICSDataSource.
import java.sql.Connection;
import java.sql.SQLException;

import javax.annotation.Resource;
import javax.sql.DataSource;

public class DataSourceExample
{
    // Inject the DataSource resource using JNDI
    @Resource(name = "jdbc/defaultCICSDataSource")
    private DataSource dataSource;

    public void accessDb() throws SQLException
    {
        try(Connection conn = dataSource.getConnection())
        {
            // Interact with SQL using the Connection object
        }
    }
}
Conexión a una base de datos con la clase java.sql.DriverManager que utiliza la configuración cicsts_jdbcDriver .
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class DriverManagerExample
{
    public void accessDatabase() throws SQLException
    {
        try(Connection conn = DriverManager.getConnection("jdbc:default:connection"))
        {
            // Interact with SQL using the Connection object
        }
    }
}