采用singleton模式,利用Apache Digester读取数据库驱动名、URL、用户名、密码
tb.xml --------------------
<?xml version="1.0" encoding="ISO-8859-1"?> <tb> <database> <driver>com.mysql.jdbc.Driver</driver> <url>jdbc:mysql://127.0.0.1:3306/tb?autoReconnect=ture&useUnicode=true&characterEncoding=UTF-8</url> <user>user</user> <password>password</password> </database> </tb>
config.java -------------------- package com.terac.board;
import org.apache.commons.digester.Digester; import org.xml.sax.SAXException;
import java.io.IOException; import java.io.InputStream;
public class Config {
private String databaseDriver; private String databaseUrl; private String databaseUser; private String databasePassword;
private final static Config instance = new Config();
public static Config getInstance() { return instance; }
private Config() { Digester digester = new Digester(); digester.push(this); digester.addCallMethod("tb/database/driver", "setDatabaseDriver", 0); digester.addCallMethod("tb/database/url", "setDatabaseUrl", 0); digester.addCallMethod("tb/database/user", "setDatabaseUser", 0); digester.addCallMethod("tb/database/password", "setDatabasePassword", 0); InputStream is = null; try { is = this.getClass().getClassLoader().getResourceAsStream("/tb.xml"); digester.parse(is); } catch (IOException e) { e.printStackTrace(); } catch (SAXException e) { e.printStackTrace(); } finally { try { if (is != null) { is.close(); } } catch (IOException exception) { // } } }
public String getDatabaseDriver() { return databaseDriver; }
public void setDatabaseDriver(String databaseDriver) { this.databaseDriver = databaseDriver; }
public String getDatabasePassword() { return databasePassword; }
public void setDatabasePassword(String databasePassword) { this.databasePassword = databasePassword; }
public String getDatabaseUrl() { return databaseUrl; }
public void setDatabaseUrl(String databaseUrl) { this.databaseUrl = databaseUrl; }
public String getDatabaseUser() { return databaseUser; }
public void setDatabaseUser(String databaseUser) { this.databaseUser = databaseUser; }
}

|