最代碼廣告位
chenjiepengc的gravatar頭像
chenjiepengc2013-01-05 13:14:44

java jdbc連接工具類DBConnectionManager

/**
 * 管理類DBConnectionManager支持對一個或多個由屬性文件定義的數據庫連接
 * 池的訪問.客戶程序可以調用getInstance()方法訪問本類的唯一實例.
 */
public class DBConnectionManager {
	
	static private DBConnectionManager instance;
	static private int clients;
	private Vector drivers = new Vector();
	private PrintWriter log;
	private Hashtable pools = new Hashtable();

	/**
	 * 返回唯一實例.如果是第一次調用此方法,則創建實例
	 * @return DBConnectionManager 唯一實例
	 */
	static synchronized public DBConnectionManager getInstance() {
		if (instance == null) {
			instance = new DBConnectionManager();
		}
		clients++;
		return instance;
	}
	/**
	 * 建構函數私有以防止其它對象創建本類實例
	 */
	private DBConnectionManager() {
		init();
	}
	/**
	 * 讀取屬性完成初始化
	 */
	private void init() {
		InputStream is = getClass().getResourceAsStream("/db.properties");
		Properties dbProps = new Properties();
		try {
			dbProps.load(is);
		} catch (Exception e) {
			System.err.println("不能讀取屬性文件. 請確保db.properties在CLASSPATH指定的路徑中");
			return;
		}
		String logFile = dbProps.getProperty("logfile", "dbconMgr.log");
		try {
			log = new PrintWriter(new FileWriter(logFile, true), true);
		} catch (IOException e) {
			System.err.println("無法打開日志文件: " + logFile);
			log = new PrintWriter(System.err);
		}
		loadDrivers(dbProps);
		createPools(dbProps);
	}
	/**
	 * 裝載和注冊所有JDBC驅動程序
	 * @param 參數  :  db.properties
	 */
	private void loadDrivers(Properties props) {
		String driverClasses = props.getProperty("drivers");
		StringTokenizer st = new StringTokenizer(driverClasses);
		while (st.hasMoreElements()) {
			String driverClassName = st.nextToken().trim();
			try {
				Driver driver = (Driver)Class.forName(driverClassName).newInstance();
				DriverManager.registerDriver(driver);
				drivers.addElement(driver);
				log("成功注冊JDBC驅動程序" + driverClassName);
			} catch (Exception e) {
				e.printStackTrace();
				log("無法注冊JDBC驅動程序: " + driverClassName + ", 錯誤: " + e);
			}
		}
	}


AXIN編輯于2014-2-12 16:36:05


打賞

文件名:DBConnectionManager.java,文件大小:10K下載
最代碼最近下載分享源代碼列表最近下載
s569891514 LV22018年1月10日
星星星星
AXIN LV362014年2月12日
太陽太陽月亮
最代碼最近瀏覽分享源代碼列表最近瀏覽
123123231 LV12019年12月12日
星星
jaonsang LV212019年10月27日
太陽月亮星星
liangliang2049 LV22019年10月13日
星星星星
fanxiaolin84 LV92019年8月15日
月亮月亮星星
13734993 LV72019年8月6日
月亮星星星星星星
wwb127 LV22019年6月11日
星星星星
13271027026 LV22019年5月12日
星星星星
yanhuaidong LV72019年4月18日
月亮星星星星星星
冷曦1369 LV92019年4月14日
月亮月亮星星
在線不是本人 LV122019年4月14日
月亮月亮月亮
頂部客服微信二維碼底部
>掃描二維碼關注最代碼為好友掃描二維碼關注最代碼為好友
2008大乐透走势图