⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 简单的例子.txt

📁 一个新的采集工具 一个新的采集工具 一个新的采集工具
💻 TXT
📖 第 1 页 / 共 2 页
字号:
作者:whitefox
email: whitefox.jiang@corp.elong.com
日期:2000-7-27 11:49:57
public class OracleConnectionManager {
	
	private DBConnectionManager connMgr;
	private final String poolName="Oracle";
	private Connection conn;
	
	public OracleConnectionManager() {

        String userID = "system";	 	
	String password = "manager";
        String JDBCDriver = "oracle.jdbc.driver.OracleDriver";
 	String JDBCDriverType = "jdbc:oracle:thin";
	String DBHost = "127.0.0.1";
	String Port = "1521";
	String SID="sid";
	String url = JDBCDriverType+":@"+DBHost + ":" + Port + ":" +SID;
	 	
		
		connMgr = DBConnectionManager.getInstance();
		if (DBConnectionManager.clients == 1){
			connMgr.init(poolName, JDBCDriver, url, userID, password);
   	                connMgr.init("egongOracle", JDBCDriver, JDBCDriverType+":@110.7.6.22:1521:egong", "abcusername", "abcpasswd");                             
 

                                                     } 
	}
	                
	public Connection getConnection() {
		return (conn=connMgr.getConnection(poolName));
	}
	
        public Connection getConnection(String newOracle) {
		return (conn=connMgr.getConnection(newOracle));
	}


	public void freeConnection() {
		connMgr.freeConnection(poolName,conn);
	}
	
        public void freeConnection(String newOracle) {
		connMgr.freeConnection(newOracle,conn);
	}

}


public class DBConnectionManager {
    static private DBConnectionManager instance=null;       // The single instance
    static public int clients=0;

    private Vector drivers = new Vector();
    private PrintWriter log;
    private Hashtable pools = new Hashtable();
    private final int MAX_CONN = 1000;
    
    /**
     * Returns the single instance, creating one if it's the
     * first time this method is called.
     *
     * @return DBConnectionManager The single instance.
     */
    static synchronized public DBConnectionManager getInstance() {
        if (instance == null) {
            instance = new DBConnectionManager();
        }
        clients++;
        return instance;
    }
    
    /**
     * A private constructor since this is a Singleton
     */
    private DBConnectionManager() {
//        init();
    }
    
    /**
     * Returns a connection to the named pool.
     *
     * @param name The pool name as defined in the properties file
     * @param con The Connection
     */
    public void freeConnection(String name, Connection con) {
        DBConnectionPool pool = (DBConnectionPool) pools.get(name);
        if (pool != null) {
            pool.freeConnection(con);
        }
    }
        
    /**
     * Returns an open connection. If no one is available, and the max
     * number of connections has not been reached, a new connection is
     * created.
     *
     * @param name The pool name as defined in the properties file
     * @return Connection The connection or null
     */
    public Connection getConnection(String name) {
        DBConnectionPool pool = (DBConnectionPool) pools.get(name);
        if (pool != null) {
            return pool.getConnection();
        }
        return null;
    }
    
    /**
     * Returns an open connection. If no one is available, and the max
     * number of connections has not been reached, a new connection is
     * created. If the max number has been reached, waits until one
     * is available or the specified time has elapsed.
     *
     * @param name The pool name as defined in the properties file
     * @param time The number of milliseconds to wait
     * @return Connection The connection or null
     */
    public Connection getConnection(String name, long time) {
        DBConnectionPool pool = (DBConnectionPool) pools.get(name);
        if (pool != null) {
            return pool.getConnection(time);
        }
        return null;
    }
    
    /**
     * Closes all open connections and deregisters all drivers.
     */
    public synchronized void release() {
        // Wait until called by the last client
        if (--clients != 0) {
            return;
        }
        
        Enumeration allPools = pools.elements();
        while (allPools.hasMoreElements()) {
            DBConnectionPool pool = (DBConnectionPool) allPools.nextElement();
            pool.release();
        }
        Enumeration allDrivers = drivers.elements();
        while (allDrivers.hasMoreElements()) {
            Driver driver = (Driver) allDrivers.nextElement();
            try {
                DriverManager.deregisterDriver(driver);
                log("Deregistered JDBC driver " + driver.getClass().getName());
            }
            catch (SQLException e) {
                log(e, "Can't deregister JDBC driver: " + driver.getClass().getName());
            }
        }
        log.close();
    }
    
    /**
     * Creates instances of DBConnectionPool based on the properties.
     * A DBConnectionPool can be defined with the following properties:
     * <PRE>
     * &lt;poolname&gt;.url         The JDBC URL for the database
     * &lt;poolname&gt;.user        A database user (optional)
     * &lt;poolname&gt;.password    A database user password (if user specified)
     * &lt;poolname&gt;.maxconn     The maximal number of connections (optional)
     * </PRE>
     *
     * @param props The connection pool properties
     */
    private void createPools(String poolName, String url, String user, String password, int max) {
/*    	
        Enumeration propNames = props.propertyNames();
        while (propNames.hasMoreElements()) {
            String name = (String) propNames.nextElement();
            if (name.endsWith(".url")) {
                String poolName = name.substring(0, name.lastIndexOf("."));
                String url = props.getProperty(poolName + ".url");
                if (url == null) {
                    log("No URL specified for " + poolName);
                    continue;
                }
                String user = props.getProperty(poolName + ".user");
                String password = props.getProperty(poolName + ".password");
                String maxconn = props.getProperty(poolName + ".maxconn", "0");
                int max;
                try {
                    max = Integer.valueOf(maxconn).intValue();
                }
                catch (NumberFormatException e) {
                    log("Invalid maxconn value " + maxconn + " for " + poolName);
                    max = 0;
                }
                DBConnectionPool pool = 
                    new DBConnectionPool(poolName, url, user, password, max);
                pools.put(poolName, pool);
                log("Initialized pool " + poolName);
            }
        }
*/        
        DBConnectionPool pool = 
            new DBConnectionPool(poolName, url, user, password, max);
        pools.put(poolName, pool);
        log("Initialized pool " + poolName);
    }

    public void init(String poolName, String driver, String url, String user, String passwd) {
    	init(poolName, driver, url, user, passwd, MAX_CONN);
    }
    
    /**
     * Loads properties and initializes the instance with its values.
     */
    public void init(String poolName, String driver, String url, String user, String passwd, int maxconn) {
/*    	
        InputStream is = getClass().getResourceAsStream("/db.properties");
        Properties dbProps = new Properties();
        try {
            dbProps.load(is);
        }
        catch (Exception e) {
            System.err.println("Can't read the properties file. " +
                "Make sure db.properties is in the CLASSPATH");
            return;
        }
        String logFile = dbProps.getProperty("logfile", "DBConnectionManager.log");

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -