Reputation: 2203
I want to connect to a MySQL database from a standalone application. There is no application/web server.
This page suggests that I should use DriverManager to create the connection. However this page suggests that connections created from DriverManager cannot be pooled.
However connection pooling is a must for me because the application uses various threads to write to the database concurrently, so closing/recreating connections is not optimal.
Which DataSource implementation should I use for this purpose? I looked at MysqlConnectionPoolDataSource but I am not sure if it actually implements a connection pool. I also looked at the Tomcat DataSource which I am sure implements a connection pool but I am not sure if it can be used outside Tomcat.
When I close the standalone application what should I do to release the connections/pool properly?
EDIT: It looks like the Tomcat DataSource is usable from standalone application, so I am going to use it. It also has a close method which I assume will release the connections.
Upvotes: 3
Views: 7284
Reputation: 8597
Take a look at Apache DBCP and DBUtils
DBCP will give you features for connection pool etc.
DBUtils will make jdbc easier for you.
As mentioned DBPool is also one, there is BoneCP and plenty pooling tools out there.
Take a look at some samples:
Upvotes: 1
Reputation: 2939
Take a look at Apache Cayenne, in doc read about DataSource and faq about connection pools
EDIT:
As a bonus you get modeler (graphical tool for database) and easy integration with Eclipse.
Upvotes: 1
Reputation: 9705
Upvotes: 1