# Connection Pooling



## meister_racer (14. Feb 2012)

Hallo,

ich bin auf der Suche nach einem einfachen Beispiel zum Thema Connection Pooling auf Basis von MySQL - JDBC. Ich finde immer nur Beispiele in Verbindung mit Java EE wovon ich allerdings wenig Ahnung habe und mich auch nicht einarbeiten möchte.

Ich möchte ein einfaches kleines Programm Programmieren, welches Connections zu einer MySQL Datenbank aufbaut und diese Connection Objekte dann benutzt und wieder beiseite legt. Das ganze soll eine einfache Konsolenanwendung werden.

Bin gerade völlig überforder weil in jedem Beispiel das ich bei Google finde irgendwelche Externen Klassen verwendet werden. Mir stehet jedoch lediglich die Standard Java Bibliothek und der MySQL JBC Driver zur Verfügung.

Habe eben gerade irgendwo im Netz dieses Beispiel gesehen was mir schon relativ logisch erscheint:


```
package connectiontestpool;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
 
import java.sql.Connection;
import com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource;
import com.mysql.jdbc.jdbc2.optional.MysqlPooledConnection;
 

public class ConnectionTestPool {
 
    public ConnectionTestPool() {
 
    }
 
    public static void main(String[] args) {
        new ConnectionTestPool().doIt();
    }
 
    /**
     * 
     */
    private void doIt() {
        // TODO Auto-generated method stub
        MysqlConnectionPoolDataSource ds = new MysqlConnectionPoolDataSource();
        ds.setDatabaseName("nordwind");
        ds.setPort(3306);
        ds.setUser("Administrator");
        ds.setServerName("localhost");
        MysqlPooledConnection polConn = null;
        Connection con = null;
        try {
            //Hier wird eine physische DB Connection geöffnet...
            polConn = (MysqlPooledConnection) ds.getPooledConnection();
            //Hier wird eine logische DB Connection geöffnet...
            con = polConn.getConnection();
 
            Statement stmt = con.createStatement();
            ResultSet rs = stmt.executeQuery("Select * from Artikel;");
            ResultSetMetaData rsmd = rs.getMetaData();
 
            while (rs.next()) {
                for (int i = 1; i <= rsmd.getColumnCount(); i++) {
                    System.out.print(rs.getString(i) + " | ");
                }
                System.out.println();
            }
            rs.close();
            stmt.close();
            con.close();
            polConn.close();
 
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
 
    }
}
```

Wo finde ich jetzt aber eine vernünftige Documentation zu den Classen MysqlConnectionPoolDataSource und MysqlPooledConnection? 
Und wo wird denn hier der Pfad angegeben wo meine Datenbank liegt?


Vielen Dank für eure Hilfe 

Vg 
Meister_Racer


----------



## achillesat (15. Feb 2012)

Wenn du in der Java api nach 
 ConnectionPoolDataSource und PooledConnection    
suchst findest du eine vernüftige Doku.


Java Platform SE 7


----------



## meister_racer (15. Feb 2012)

achillesat hat gesagt.:


> Wenn du in der Java api nach
> ConnectionPoolDataSource und PooledConnection
> suchst findest du eine vernüftige Doku.
> 
> ...




Stimmt aber das sind nur Interfaces die haben ja noch keine Funktion oder sehe ich das falsch?

Gruß
meister_racer


----------



## achillesat (15. Feb 2012)

Die Funktionen stehen doch auch dabei...


----------



## meister_racer (15. Feb 2012)

achillesat hat gesagt.:


> Die Funktionen stehen doch auch dabei...



Ja aber anscheinend nicht alle diese z.B. kann ich nicht finden im Javadoc: ds.setDatabaseName("nordwind");
Java Platform SE 7

Diese funktion ist anscheinend von Mysql hinzugefügt worden also brauche ich doch eine Documentation von der JDBC-Connector library aber wo finde ich diese?


----------



## achillesat (15. Feb 2012)

Google


----------



## meister_racer (15. Feb 2012)

So sieht die JDBC Connector Referenz aus: MySQL :: MySQL 5.1 Referenzhandbuch :: 25.3.4 Connector/J (JDBC)-Referenz

Für mich ist das keine richtige Referenz wo stehen denn die Funktionen der MysqlConnectionPoolDataSource Klasse wie z.B. getDatabaseName() ?


----------



## Gast2 (15. Feb 2012)

Schwer zu finden...

com.mysql.jdbc.jdbc2.optional: public class: MysqlConnectionPoolDataSource


----------

