Ich sehe, dass einige Leute org.apache.commons.dbcp.BasicDataSource
verwenden, während andere Konfigurationen com.mchange.v2.c3p0.ComboPooledDataSource
haben.
Spring hat eine eigene Eigenschaft: org.springframework.jdbc.datasource.DriverManagerDataSource
Es gibt wahrscheinlich noch mehr. Aber welcher ist der Beste? Ich habe eine dreistufige JPA / Hibernate-Anwendung, die Verbindungspooling benötigt, aber es sieht so aus, dass alle dies unterstützen ....
Spring hat seine eigene Adresse: org.springframework.jdbc.datasource.DriverManagerDataSource
Die Klasse org.springframework.jdbc.datasource.DriverManagerDataSource
Implementiert die DataSource
-Schnittstelle aber ist NICHT ein Verbindungspool, es ist nur eine praktische Klasse, die während der Entwicklung anstelle eines realen Pools verwendet werden kann (aber sie erstellt bei jedem Anruf eine neue Verbindung). Ich würde vorschlagen, seine javadoc zu lesen .
Ich habe eine dreistufige JPA / Hibernate-Anwendung, die Verbindungspooling benötigt, aber es sieht so aus, als ob alle dies unterstützen ....
Wenn Sie einen Anwendungsserver verwenden, bevorzugen Sie den Verbindungspool Ihres Anwendungsservers.
Wenn nicht, dann sind DBCP, C3P0 die gebräuchlichsten Lösungen. Ich würde C3P0 verwenden (das jetzt statt mit DBCP tatsächlich mit Hibernate gebündelt ist). Ich sah einige Deadlock-Probleme mit DBPC unter hoher Last, nicht mit C3P0, daher bevorzuge ich C3P0.
Es mag erwähnenswert sein, dass DBCP nach sehr langer Zeit der Inaktivität (während C3P0 inaktiv ist) erst kürzlich wiederbelebt wurde und daher besser werden könnte.
Zu den anderen Spielern gehören Proxool und BoneCP ( ein neuer Wettbewerber). Das später sieht interessant aus, aber ich habe keine praktische Erfahrung damit.
In jedem Fall sollten Sie in der Regel Robustheitstests durchführen, bevor Sie in die Produktion gehen.
Tags und Links configuration class xml datasource javabeans