package pooling; import java.sql.Connection; import java.sql.DatabaseMetaData; import javax.sql.DataSource; import org.postgresql.jdbc2.optional.PoolingDataSource; public class ConnectionPoolingExample { public static void main(String[] args) { try { // Zuerst initialisieren wir die herstellerspezifische // Klasse PoolingDataSource source = new PoolingDataSource(); // Die Datenbankverbindung wird hier über die // folgenden Getter- und Settermethoden definiert source.setDatabaseName("test"); source.setServerName("localhost"); source.setUser("postgres"); source.setPassword("postgres"); System.out.println("Using ConnectionPooling..."); // Da der PoolingDataSource das Interface // javax.sql.DataSource implementiert, kann diese // entsprechend verwendet werden. DataSource pool = source; // Ab hier ist alles wie gehabt - das // Connection-Pooling wird für den Programmierer // vollkommen transparent angewendet. Connection con = source.getConnection(); DatabaseMetaData data = con.getMetaData(); System.out.println( "Connected to " + data.getDatabaseProductName() + " via " + pool.getClass()); con.close(); } catch (Exception e) { e.printStackTrace(); } } }