How To Create A Standalone Connection Pool In Java?

Following is the tactic I typically choose to create the connection pool for any database. I exploit the BasicDataSource class developed by “Apache Software program Foundataion” and out there without spending a dime. For working with this, you might want so as to add these jar recordsdata to your classpath:


1. commons-dbcp.jar
2. commons-pooljar
3. commons-collections.jar
4. mysql-connector-java-5.1.5-bin.jar (for MySQL database server. Substitute this with classes12.jar in case you are utilizing Oracle)

To create a DataSource object, simply instanciate the BasicDataSource class and set the properties associated to the database.


BasicDataSource ds = new BasicDataSource();
ds.setDriverClassName("com.mysql.jdbc.Driver");
ds.setUsername("root");
ds.setPassword("secret");
ds.setUrl("jdbc:mysql://localhost/vinod");

Substitute the phrase “localhost” with the IP deal with of the distant server, in case you are utilizing one.

Now you can set the connection-pool properties additionally.


ds.setMaxActive(20);
ds.setMaxIdle(2);

That is it. You’ve simply created 20 prepared to make use of connection objects in a pool.

Usually you wrap all these statements in a way as beneath:


DataSource getDataSource(){
BasicDataSource ds = new BasicDataSource();
ds.setDriverClassName("com.mysql.jdbc.Driver");
ds.setUsername("root");
ds.setPassword("secret");
ds.setUrl("jdbc:mysql://localhost/vinod");
ds.setMaxActive(20);
ds.setMaxIdle(2);
return ds;
}

All it’s a must to do to retrieve that is to name the getConnection() technique of javax.sql.DataSource.


DataSource ds=getDataSource();
Connection conn=ds.getConnection();

Remember to shut the connection, as this could guarantee your connection is returned to the pool.

Obtain pattern program from [http://kvinod.com/standalone-dbcp-in-java/StandaloneDBCP.java]

After you have the connection, you should use the identical to create Assertion, PreparedStatement or use it for transaction administration and so forth.

Leave a Comment