sql >> Base de Datos >  >> RDS >> PostgreSQL

cómo desenvolver la conexión PostgreSQL desde IBM WSJdbc41Connection

Si desea desenvolver un objeto JDBC (fuente de datos, conexión, etc.) en una interfaz específica del proveedor, el controlador JDBC en el <datSource> configurado debe estar disponible para el cargador de clases de la aplicación. La configuración se verá así:

<application location="oraclejdbcfat.war" >
    <!-- expose the 'DBLib' containing the JDBC driver jar to the app classloader -->
    <classloader commonLibraryRef="DBLib"/>
</application>

<library id="DBLib">
    <fileset dir="${server.config.dir}/postgresql/" includes="*.jar"/>
</library>

<dataSource jndiName="jdbc/myDS">
    <jdbcDriver libraryRef="DBLib"/>
    <properties .../>
</dataSource>

A partir de ahí, puede desenvolver el objeto de la misma forma que lo hacía antes, a saber:

DataSource ds = InitialContext.doLookup("jdbc/myDS");
Connection conn = ds.getConnection();
PGConnection pgConn = conn.unwrap(org.postgresql.PGConnection.class);

Además, hay un enableConnectionCasting atributo booleano en <dataSource> configuración que llamará automáticamente a unwrap para usted en getConnection() .

<dataSource jndiName="jdbc/myDS" enableConnectionCasting="true">

Entonces el código java es un poco más simple:

DataSource ds = InitialContext.lookup("jdbc/indi");
PGConnection pgConn = (PGConnection) ds.getConnection();