孤独海岸线 发表于 2017-1-14 07:07:50

java桌面程序:apache池化多个数据源的示例

package datatransfer;

import java.sql.Connection;
import java.sql.SQLException;
import org.apache.commons.dbcp.cpdsadapter.DriverAdapterCPDS;
import org.apache.commons.dbcp.datasources.SharedPoolDataSource;
import java.util.logging.Level;
import java.util.logging.Logger;

public class ApacheCPDS {

    static SharedPoolDataSource omcsp1_pm;
    static SharedPoolDataSource omcsp9_pm;
    static SharedPoolDataSource omcsp11_pm;
    static SharedPoolDataSource omcsp1_cm;
    static SharedPoolDataSource omcsp9_cm;
    static SharedPoolDataSource omcsp11_cm;
    private static final int MaxActive = 3;
    private static final int MaxWait = 3;

    public static void init_DataSource_mot_pm() {
      omcsp1_pm = get_spds("omcsp1", "xxxx", "xxxx");
      omcsp9_pm = get_spds("omcsp9", "xxxx", "xxxx");
      omcsp11_pm = get_spds("omcsp11", "xxxx", "xxxx");
      Main.StringMapCPDS.put("OMCSP1", omcsp1_pm);
      Main.StringMapCPDS.put("OMCSP9", omcsp9_pm);
      Main.StringMapCPDS.put("OMCSP11", omcsp11_pm);
      System.out.println("Main.StringMapCPDS.keySet() " + Main.StringMapCPDS.keySet());
    }

    public static void init_DataSource_mot_cm() {
      omcsp1_cm = get_spds("omcsp1_mib", "xxxx", "xxxx");
      omcsp9_cm = get_spds("omcsp9_mib", "xxxx", "xxxx");
      omcsp11_cm = get_spds("omcsp11_mib", "xxxx", "xxxx");
      Main.StringMapCPDS.put("OMCSP1_MIB", omcsp1_cm);
      Main.StringMapCPDS.put("OMCSP9_MIB", omcsp9_cm);
      Main.StringMapCPDS.put("OMCSP11_MIB", omcsp11_cm);
      System.out.println("Main.StringMapCPDS.keySet() " + Main.StringMapCPDS.keySet());
    }

    public static SharedPoolDataSource get_spds(String omc, String user, String pwd) {
      try {
            DriverAdapterCPDS DAcpds = new DriverAdapterCPDS();
            DAcpds.setDriver("sun.jdbc.odbc.JdbcOdbcDriver");
            DAcpds.setUrl("jdbc:odbc:" + omc);
            DAcpds.setUser(user);
            DAcpds.setPassword(pwd);
            SharedPoolDataSource spds = new SharedPoolDataSource();
            spds.setConnectionPoolDataSource(DAcpds);
            spds.setMaxActive(MaxActive);
            spds.setMaxWait(MaxWait);
            return spds;
      } catch (ClassNotFoundException ex) {
            Logger.getLogger(ApacheCPDS.class.getName()).log(Level.SEVERE, null, ex);
      }
      return null;
    }

    public static void main(String[] args) throws SQLException {
      Connection cn0 = ApacheCPDS.omcsp1_pm.getConnection();
      System.out.println(cn0);
      cn0.close();
      System.out.println(cn0.isClosed());
      System.out.println(cn0);
      System.out.println(omcsp1_pm);
    }
}
页: [1]
查看完整版本: java桌面程序:apache池化多个数据源的示例