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

📄 dao.java

📁 导出ORACLE数据库对象DDL语句的程序
💻 JAVA
字号:
/*
 * 创建日期 2005-4-28
 *  作 者   liug
 */
package com.icbc.util;

import java.sql.Connection;
import java.sql.DriverManager;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 * @author liug
 * @time    20:28:07
 */
public class DAO {
    private static Logger log = Logger.getLogger(DAO.class.getName());
    
	private ArrayList freeConns = new ArrayList();
	private HashMap usingConns = new HashMap();
	private String jdbcURL = null;
	private String jdbcUserName = null;
	private String jdbcPassword = null;
	private String jdbcDriver = null;
	public DAO(
		String jdbcURL,
		String jdbcUserName,
		String jdbcPassword,
		String jdbcDriver) {
		this.jdbcURL = jdbcURL;
		this.jdbcUserName = jdbcUserName;
		this.jdbcPassword = jdbcPassword;
		this.jdbcDriver = jdbcDriver;
	}
	public synchronized Connection getConnection() {
		Connection conn = null;
		try {
			conn = (Connection) freeConns.remove(0);
			conn.setAutoCommit(false);
		} catch (Exception e) {
//		    log.log(Level.WARNING,"无法从连接池获取到连接");
			conn = null;
		}
		if (conn == null) {
			try {
				Class.forName(jdbcDriver);
				conn =
					DriverManager.getConnection(
						jdbcURL,
						jdbcUserName,
						jdbcPassword);
				conn.setAutoCommit(false);
			} catch (Exception ee) {
				log.log(Level.SEVERE, "获取数据库连接出错!", ee);
			}
		}
		if (conn != null) {
			usingConns.put(conn, null);
		}
		return conn;
	}

	public synchronized void releaseConnection(Connection conn) {
		usingConns.remove(conn);
		try {
			conn.setAutoCommit(false);
			freeConns.add(conn);
		} catch (Exception e) {
			log.log(Level.WARNING, "数据库连接池释放无用连接.", e);
		}
	}
	public synchronized void closeAll() {
		for (int i = 0; i < freeConns.size(); i++) {
			Connection conn = (Connection) freeConns.get(i);
			try {
				conn.close();
			} catch (Exception e) {
			}
		}
		Iterator iterator = usingConns.keySet().iterator();
		while (iterator.hasNext()) {
			Connection conn = (Connection) iterator.next();
			try {
				conn.close();
			} catch (Exception e) {
			}
		}
		freeConns.clear();
		usingConns.clear();
	}
	
	public String getjdbcURL(){
		return jdbcURL;
	}
}

⌨️ 快捷键说明

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