Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

java - DataSource for standalone application - no application server

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.

  1. 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.

  2. 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.

like image 543
arahant Avatar asked Jan 20 '26 09:01

arahant


2 Answers

  1. I would advise to use a library like DBPool. It'll take a lot of headaches away from you because the developer already took care of them.
  2. To ensure proper cleanup of your connection pool, read the documentation about a JVM Shutdown hook.
like image 130
mthmulders Avatar answered Jan 21 '26 22:01

mthmulders


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.

like image 23
1ac0 Avatar answered Jan 21 '26 23:01

1ac0



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!