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

com.centit.support.database.transaction.ConnectThreadWrapper Maven / Gradle / Ivy

There is a newer version: 5.3.2302
Show newest version
package com.centit.support.database.transaction;

import com.centit.support.database.utils.DataSourceDescription;
import com.centit.support.database.utils.DbcpConnectPools;

import java.io.Serializable;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

public class ConnectThreadWrapper implements Serializable {
    private final
    Map connectPools;

    public ConnectThreadWrapper() {
        this.connectPools = new ConcurrentHashMap<>(4);
    }

    public Connection fetchConnect(DataSourceDescription description) throws SQLException {
        Connection conn = connectPools.get(description);
        if (conn == null) {
            conn = DbcpConnectPools.getDbcpConnect(description);
            connectPools.put(description, conn);
        }
        return conn;
    }

    public void commitAllWork() throws SQLException {
        if (connectPools.size() == 0) {
            return;
        }
        for (Connection conn : connectPools.values()) {
            conn.commit();
        }
    }

    public void rollbackAllWork() throws SQLException {
        if (connectPools.size() == 0) {
            return;
        }
        for (Connection conn : connectPools.values()) {
            conn.rollback();
        }
    }

    public void releaseAllConnect() {
        if (connectPools.size() == 0) {
            return;
        }
        for (Connection conn : connectPools.values()) {
            DbcpConnectPools.closeConnect(conn);
        }
        connectPools.clear();
    }
}





© 2015 - 2025 Weber Informatics LLC | Privacy Policy