All Downloads are FREE. Search and download functionalities are using the official Maven repository.

li.rudin.jooq.cdi.extension.DSLConnectionProvider Maven / Gradle / Ivy

The newest version!
package li.rudin.jooq.cdi.extension;

import java.sql.Connection;
import java.sql.SQLException;

import li.rudin.jooq.cdi.DatabaseConfiguration;

import org.jooq.ConnectionProvider;
import org.jooq.exception.DataAccessException;

import com.mchange.v2.c3p0.ComboPooledDataSource;

public class DSLConnectionProvider implements ConnectionProvider
{
	public DSLConnectionProvider(DatabaseConfiguration config)
	{
		try
		{
			dataSource = new ComboPooledDataSource();
			dataSource.setDriverClass(config.getDriverClass());
			dataSource.setUser(config.getUserName());
			dataSource.setPassword(config.getPassword());
			dataSource.setJdbcUrl(config.getDatabaseUrl());

			dataSource.setInitialPoolSize(5);
			dataSource.setMinPoolSize(5);
			dataSource.setAcquireIncrement(5);
			dataSource.setMaxPoolSize(50);
		}
		catch (Exception e)
		{
			throw new IllegalArgumentException("init", e);
		}


	}
	
	public void close()
	{
		dataSource.close();
	}
	
	private ComboPooledDataSource dataSource;

	
	@Override
	public Connection acquire() throws DataAccessException
	{
		try
		{
			Connection connection = dataSource.getConnection();
			return connection;
		}
		catch (SQLException e)
		{
			throw new DataAccessException("acquire", e);
		}
	}

	@Override
	public void release(Connection connection) throws DataAccessException
	{
		try
		{
			connection.close();
		}
		catch (SQLException e)
		{
			throw new DataAccessException("acquire", e);
		}

	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy