2013-04-04 25 views
5

Was ist der Unterschied zwischen MysqlConnectionPoolDataSource und C3p0, BoneCP oder dbcp Bibliothek für Verbindungspooling? Ich verstehe nicht, warum eine Bibliothek verwenden, wenn mysql Connector Verbindungspooling geben.MysqlConnectionPoolDataSource oder c3p0 wie Bibliothek?

+0

Hier sind einige weitere Details darüber, was am besten Ihren Bedürfnissen entspricht http://stackoverflow.com/questions/5640146/java-jdbc-connection-pool-library-choice-in-2011-2012 –

Antwort

3

A ConnectionPoolDataSource ist nicht ein Verbindungspool (oder zumindest: es sollte nicht sein), es beabsichtigt ist, durch ein DataSource verwendet werden, die (zum Beispiel von einem Anwendungsserver) sieht Pooling. A ConnectionPoolDataSource stellt die physischen Verbindungen bereit, die im Verbindungspool gespeichert werden. Neben dem Erstellen dieser physischen Verbindungen sollte ein ConnectionPoolDataSource nichts anderes tun.

Wenn Sie also auf einem Anwendungsserver arbeiten, verwenden Sie das Pooling, das von DataSource s des Anwendungsservers bereitgestellt wird. Wenn Sie in einer eigenständigen Anwendung oder auf einem Server arbeiten, der keine eigenen Datenquellen bereitstellt, verwenden Sie Verbindungspools von Drittanbietern wie BoneCP, c3p0 oder Apache DBCP. Wenn MySQL auch eine normale DataSource bietet, die Pooling bietet, dann könnten Sie das verwenden.