Nếu bạn muốn mở đối tượng JDBC (DataSource, Connection, v.v.) vào giao diện dành riêng cho nhà cung cấp, hãy trình điều khiển JDBC trong <datSource>
được định cấu hình phải có sẵn cho trình tải lớp ứng dụng. Cấu hình sẽ giống như sau:
<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>
Từ đó, bạn có thể mở gói đối tượng theo cách giống như cách bạn đã làm trước đây, cụ thể là:
DataSource ds = InitialContext.doLookup("jdbc/myDS");
Connection conn = ds.getConnection();
PGConnection pgConn = conn.unwrap(org.postgresql.PGConnection.class);
Ngoài ra, có một enableConnectionCasting
thuộc tính boolean trên <dataSource>
cấu hình sẽ tự động gọi cho bạn khi getConnection()
.
<dataSource jndiName="jdbc/myDS" enableConnectionCasting="true">
Sau đó, mã java đơn giản hơn một chút:
DataSource ds = InitialContext.lookup("jdbc/indi");
PGConnection pgConn = (PGConnection) ds.getConnection();