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

📄 userdaofactory.java

📁 更不用说了,我培训期间的资料,包括每天老师的例子.文件主要包括,HIBERNATE的配置,一对多,多对多.别的就是些平时的自己作业.XML方面也有.我感觉很适合,想学习这方面的却没有适合练习的人,毕竟
💻 JAVA
字号:
package server.dao;
import java.lang.reflect.*;
import javax.xml.parsers.*;
import org.xml.sax.*;
import org.xml.sax.helpers.*;
public class UserDAOFactory {
	private static UserDAOFactory instance=new UserDAOFactory();
	private UserDAOFactory(){}
	public static UserDAOFactory newInstance(){
		return instance;
	}
	public synchronized UserDAO getUserDAO(){
		//读取配置文件
		try {
			SAXParserFactory factory=SAXParserFactory.newInstance();
			SAXParser parser=factory.newSAXParser();
			final String[] names=new String[2];
			parser.parse("config/DAO.xml",new DefaultHandler(){
				String elementName;
				public void startElement(String uri,String localName,String qName,Attributes as){
					this.elementName=qName;
				}
				public void characters(char[] ch,int start,int length){
					String s=new String(ch,start,length).trim();
					if (s.length()==0) return;
					if (this.elementName.equals("DaoImpl")) names[0]=s;
					if (this.elementName.equals("DaoFile")) names[1]=s;
				}
			});
			/*  僵化的硬编码
			if (daoClassName.equals("server.dao.TextFileUserDAO")){
				UserDAO dao=new server.dao.TextFileUserDAO(fileName);
			}
			*/
			
			//反射的根据类名来构造DAO对象
			
			Class c=Class.forName(names[0]);
			Constructor con=c.getConstructor(String.class);
			Object o=con.newInstance(names[1]);
			return (UserDAO)o;
			
		} catch (Exception e) {
			e.printStackTrace();
			return null;
		} 
		
	}
}

⌨️ 快捷键说明

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