Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package connection;
- import exceptions.DAOException;
- import exceptions.JDBCConnectionException;
- import logger.Logger;
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.SQLException;
- import java.util.ArrayList;
- import java.util.Collections;
- import java.util.List;
- import java.util.ResourceBundle;
- public class ConnectionPool {
- private List<Connection> connections;
- private List<Connection> usedConnections;
- /**
- * init connection pool
- * @throws JDBCConnectionException
- */
- public ConnectionPool() throws JDBCConnectionException {
- connections = Collections.synchronizedList(new ArrayList<Connection>());
- usedConnections = Collections.synchronizedList(new ArrayList<Connection>());
- }
- /**
- * get connection
- * @throws JDBCConnectionException
- */
- public Connection getConnection() throws JDBCConnectionException {
- Connection conn = null;
- if(connections.size() < 1) {
- ResourceBundle resource = ResourceBundle.getBundle("properties/database");
- String url = resource.getString("url");
- String driver = resource.getString("driver");
- String user = resource.getString("user");
- String pass = "";
- try {
- Class.forName(driver).newInstance();
- conn = DriverManager.getConnection(url, user, pass);
- } catch (ClassNotFoundException e) {
- throw new JDBCConnectionException ("Driver is not loaded!");
- } catch (InstantiationException | IllegalAccessException | SQLException e) {
- Logger.logError(Logger.connectorLogger, e);
- }
- usedConnections.add(conn);
- } else {
- conn = connections.get(connections.size() - 1);
- connections.remove(connections.size() - 1);
- usedConnections.add(conn);
- }
- return conn;
- }
- /**
- * release connection
- * @throws JDBCConnectionException
- */
- public void releaseConnection() throws JDBCConnectionException {
- Connection conn = usedConnections.get(usedConnections.size() - 1);
- usedConnections.remove(usedConnections.size() - 1);
- connections.add(conn);
- }
- /**
- * close func
- * @throws JDBCConnectionException
- */
- public void close(Connection conn) throws JDBCConnectionException {
- if (conn != null) {
- try {
- conn.close();
- } catch (SQLException e) {
- throw new JDBCConnectionException("Can't close connection");
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement