daofactory.java

来自「达内Java培训实训项目ECPORT原码。 包括逐步优化的四个版本: 简单工」· Java 代码 · 共 56 行

JAVA
56
字号
package com.royee.ecport.dao;

import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
import java.util.Set;

@SuppressWarnings("unchecked")
public class DaoFactory {
	private static String DAO_CONFIG_FILE = "/dao.properties";
	private static final Map<String, CommonDao> daos = new HashMap<String, CommonDao>();
	/**
	 * 从配置文件注册各Dao实例
	 */
	static {
		Properties p = new Properties();
		InputStream is = DaoFactory.class.getResourceAsStream(
				DAO_CONFIG_FILE);
		try {
			p.load(is);
			Set<Object> keys = p.keySet();
			for (Object key : keys) {
				daos.put((String) key,
						(CommonDao) (Class.forName(
								p.getProperty((String) key)
							).newInstance()));
			}

		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (InstantiationException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IllegalAccessException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}
	
	/**
	 * 获取Dao
	 * @param key	配置文件中注册的key
	 * @return
	 */
	public static CommonDao getDao(String key){
		return daos.get(key);
	}
}

⌨️ 快捷键说明

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