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

📄 jmdboconnectionpool.java.svn-base

📁 MSN客服自动化机器人
💻 SVN-BASE
字号:
package jm.dbo;
import java.sql.Connection;
import java.sql.DriverManager;
import java.util.LinkedList;

/**
 * 连接池
 * @author spook(1shome)
 * @see jdk1.5.2
 * @version 1.4.0.1
 *
 */
public class JMDBOConnectionPool {
    public static final String CLASS_NAME = "JMDBOConnectionPool";

    //private int checkedOut_;

    private LinkedList freeConnections_ = new LinkedList();

//    private String name_;
    private String driver_;

    private String password_;

    private String URL_;

    private String user_;

    private int iMaxConn_;

	/**
	 * 配置连接池
	 * @param _set 数据库配置信息
	 */
    public JMDBOConnectionPool(JMDBOConntionInfoKeyValue _set) {
        if(_set==null){
            _set = new JMDBOConntionInfoKeyValue();
        }
//        this.name_ = _set.getDatabase();
        this.driver_ = _set.getDriver();
        this.URL_ = _set.getUrl();
        this.user_ = _set.getUser();
        this.password_ = _set.getPassword();
        this.iMaxConn_ = Integer.parseInt(_set.getMaxcon());
    }

//    /**
//     * close not use con
//     *
//     * @param con
//     *            free con
//     */
//    public synchronized void freeConnection(Connection con) {
//        freeConnections_.add(con);
//        checkedOut_--;
//        notifyAll();
//    }

    /**
     * get a con from conpool
     *
     * @return Connection
     */
    public synchronized Connection getConnection() {
        Connection con = null;
		try{
	        //直接取走
	        if (freeConnections_.size() > 0) {
	            con = (Connection)freeConnections_.getFirst();
	            freeConnections_.remove(0);
	        }
	        else{
	        	//最大连接数
	        	for(int i=0;i<iMaxConn_;i++){
	        		con = newConnection();
	        		freeConnections_.add(con);
	        	}
	        	con = newConnection();
	        }
		}catch(Exception e){
			e.printStackTrace();
		}
        return con;
    }

    /**
     * creat new connection
     *
     * @return Connection
     */
    private Connection newConnection() throws Exception {
        Connection con = null;
    	Class.forName(driver_);
//    	System.out.println(driver_);
//    	System.out.println(URL_);
        if (user_ == null) {
            con = DriverManager.getConnection(URL_);
        } else {
            con = DriverManager.getConnection(URL_, user_, password_);
        }
        
        return con;
    }

    // 1�AOracle8/8i/9i����?�ithin�͎��j
    //
    // Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
    // String url="jdbc:oracle:thin:@localhost:1521:orcl"; //orcl?����?�ISID
    // String user="test";
    // String password="test";
    // Connection conn= DriverManager.getConnection(url,user,password);
    //
    // 2�ADB2����?
    //
    // Class.forName("com.ibm.db2.jdbc.app.DB2Driver ").newInstance();
    // String url="jdbc:db2://localhost:5000/sample"; //sample??�I����?��
    // String user="admin";
    // String password="";
    // Connection conn= DriverManager.getConnection(url,user,password);
    //
    // 3�ASql Server7.0/2000����?
    //
    // Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
    // String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mydb";
    // // mydb?����?
    // String user="sa";
    // String password="";
    // Connection conn= DriverManager.getConnection(url,user,password);
    //
    // 4�ASybase����?
    //
    // Class.forName("com.sybase.jdbc.SybDriver").newInstance();
    // String url =" jdbc:sybase:Tds:localhost:5007/myDB";//myDB??�I����?��
    // Properties sysProps = System.getProperties();
    // SysProps.put("user","userid");
    // SysProps.put("password","user_password");
    // Connection conn= DriverManager.getConnection(url, SysProps);
    //
    // 5�AInformix����?
    //
    // Class.forName("com.informix.jdbc.IfxDriver").newInstance();
    // String url =
    // "jdbc:informix-sqli://123.45.67.89:1533/myDB:INFORMIXSERVER=myserver;
    // user=testuser;password=testpassword"; //myDB?����?��
    // Connection conn= DriverManager.getConnection(url);
    //
    // 6�AMySQL����?
    //
    // Class.forName("org.gjt.mm.mysql.Driver").newInstance();
    // String url
    // ="jdbc:mysql://localhost/myDB?user=soft&password=soft1234&useUnicode=true&characterEncoding=8859_1"
    // // myDB?����?��
    // Connection conn= DriverManager.getConnection(url);
    //
    // 7�APostgreSQL����?
    //
    // Class.forName("org.postgresql.Driver").newInstance();
    // String url ="jdbc:postgresql://localhost/myDB" //myDB?����?��
    // String user="myuser";
    // String password="mypassword";
    // Connection conn= DriverManager.getConnection(url,user,password);
    //
    // 8�Aaccess����?��?�pODBC�I
    //
    // Class.forName("sun.jdbc.odbc.JdbcOdbcDriver") ;
    // String url="jdbc:odbc:Driver={MicroSoft Access Driver (*.mdb)};DBQ="+application.getRealPath("/Data/ReportDemo.mdb");
    // Connection conn = DriverManager.getConnection(url,"","");
    // Statement stmtNew=conn.createStatement() ;

}

⌨️ 快捷键说明

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