java 数据库连接池

/**
 * 说明:数据库连接池
 * @author see_you_again
 * @date 2015.8.17
 * 
 */
public class DBManager {
	
	private BasicDataSource ds = null;
	private XmlDbImp xmldb = null ;
	
	/**
	 * 说明:构造函数
	 * @param xmldb
	 */
	public   DBManager( XmlDbImp xmldb ) {
		this.xmldb = xmldb ;

		try {
			 DataSource datasource = this.xmldb.getDatasource() ;
			 ds = new BasicDataSource();
		     ds.setInitialSize(Integer.parseInt(xmldb.getParamMap().get("initialSize"))) ;
		     ds.setMaxIdle(Integer.parseInt(xmldb.getParamMap().get("maxIdle"))) ;//最大空闲连接
		     ds.setMaxActive(Integer.parseInt(xmldb.getParamMap().get("maxActive"))) ;//最大连接数量
		     ds.setMaxWait(Integer.parseInt(xmldb.getParamMap().get("maxWait"))) ;//时等待时间以毫秒为单位 1000等于60秒
		     ds.setPassword(datasource.getPassword());
		     ds.setUrl(datasource.getURL());
		     ds.setUsername(datasource.getUser());
		     ds.setDriverClassName("oracle.jdbc.driver.OracleDriver");

		} catch (Exception e) {
			e.printStackTrace();
		}

	}

	/**
	 * 获取链接,用完后记得关闭
	 * 
	 * @see {@link DBManager#closeConn(Connection)}
	 * @return
	 */
	public  Connection getConn() {
		Connection conn = null;
		try {
			conn = ds.getConnection();
		} catch (SQLException e) {
		}
		return conn;
	}

	/**
	 * 关闭连接
	 * 
	 * @param conn
	 *            需要关闭的连接
	 */
	public void closeConn(Connection conn) {
		try {
			if (conn != null && !conn.isClosed()) {
				conn.setAutoCommit(true);
				conn.close();
			}
		} catch (SQLException e) {
		}
	}

}

猜你喜欢

转载自see-you-again.iteye.com/blog/2239556