Java : Wrapper (JDBC) con ejemplos

Wrapper (Java SE 21 & JDK 21) en Java con ejemplos.
Encontrará ejemplos de código en la mayoría de los métodos de Wrapper.

Nota :


Summary

Interfaz para clases JDBC que proporciona la capacidad de recuperar la instancia delegada cuando la instancia en cuestión es de hecho una clase proxy. (Traducción automática)

Class diagram

Note :

  • The code examples in this page use Apache Derby as the JDBC driver. Apache Derby was once included in older JDKs, but is not included in the latest JDK.
final var url = "jdbc:derby:memory:db;create=true";
try (final var connection = DriverManager.getConnection(url)) {

    final var iface = EmbedConnection.class;
    System.out.println("iface = " + iface);

    if (connection.isWrapperFor(iface)) {
        System.out.println("isWrapperFor = true");

        final EmbedConnection unwrapped = connection.unwrap(iface);
        System.out.println("unwrapped = " + unwrapped);
    }
}

// Result
// ↓
//iface = class org.apache.derby.impl.jdbc.EmbedConnection
//isWrapperFor = true
//unwrapped = org.apache.derby.impl.jdbc.EmbedConnection@626393072
//  (XID = 166), (SESSIONID = 1), (DATABASE = memory:db), (DRDAID = null)

Methods

boolean isWrapperFor (Class<?> iface)

Devuelve verdadero si implementa el argumento de la interfaz o es directa o indirectamente un contenedor para un objeto que lo hace. (Traducción automática)

final var url = "jdbc:derby:memory:db;create=true";
try (final var connection = DriverManager.getConnection(url)) {

    final var iface = EmbedConnection.class;
    System.out.println("iface = " + iface);

    if (connection.isWrapperFor(iface)) {
        System.out.println("isWrapperFor = true");

        final EmbedConnection unwrapped = connection.unwrap(iface);
        System.out.println("unwrapped = " + unwrapped);
    }
}

// Result
// ↓
//iface = class org.apache.derby.impl.jdbc.EmbedConnection
//isWrapperFor = true
//unwrapped = org.apache.derby.impl.jdbc.EmbedConnection@626393072
//  (XID = 166), (SESSIONID = 1), (DATABASE = memory:db), (DRDAID = null)

<T> T unwrap (Class<T> iface)

Devuelve un objeto que implementa la interfaz dada para permitir el acceso a métodos no estándar o métodos estándar no expuestos por el proxy. (Traducción automática)

final var url = "jdbc:derby:memory:db;create=true";
try (final var connection = DriverManager.getConnection(url)) {

    final var iface = EmbedConnection.class;
    System.out.println("iface = " + iface);

    if (connection.isWrapperFor(iface)) {
        System.out.println("isWrapperFor = true");

        final EmbedConnection unwrapped = connection.unwrap(iface);
        System.out.println("unwrapped = " + unwrapped);
    }
}

// Result
// ↓
//iface = class org.apache.derby.impl.jdbc.EmbedConnection
//isWrapperFor = true
//unwrapped = org.apache.derby.impl.jdbc.EmbedConnection@626393072
//  (XID = 166), (SESSIONID = 1), (DATABASE = memory:db), (DRDAID = null)

Related posts

To top of page