PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

jak rozpakować połączenie PostgreSQL z IBM WSJdbc41Connection

Jeśli chcesz rozpakować obiekt JDBC (DataSource, Connection itp.) do interfejsu specyficznego dla dostawcy, sterownik JDBC w skonfigurowanym <datSource> musi być dostępny dla programu ładującego klasy aplikacji. Konfiguracja będzie wyglądać mniej więcej tak:

<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>

Stamtąd możesz odpakować obiekt w ten sam sposób, w jaki robiłeś to wcześniej, a mianowicie:

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

Ponadto istnieje enableConnectionCasting Atrybut logiczny w <dataSource> konfiguracja, która automatycznie wywoła unwrap dla Ciebie po getConnection() .

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

Wtedy kod Java jest nieco prostszy:

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQLAlchemy wiele kluczy obcych w jednej zmapowanej klasie do tego samego klucza podstawowego

  2. postgresql - nie można utworzyć bazy danych - OperationalError:dostęp do szablonu źródłowej bazy danych1 mają inni użytkownicy

  3. pakiet wywołań funkcji postgreSQL

  4. Jak zmodyfikować pojedynczą wartość właściwości w typie danych PostgreSQL JSONB?

  5. Wartość referencyjna kolumny serii w innej kolumnie podczas tej samej INSERT