项目上有需要读取xml数据库配置文件,直接上代码:
public class ConfigReader {
private JdbcInfo jdbcInfo;
// 静态的私有的成员变量
private static ConfigReader configReader = new ConfigReader();
private ConfigReader() {
try {
Document doc = new SAXReader().read(Thread.currentThread().getContextClassLoader().getResourceAsStream("dataAccessContext.xml"));
Element root=doc.getRootElement(); //--获得根节点
List<Element> beanList = root.elements(); //--获取所有bean节点
for(int i=0; i<beanList.size(); i++){
Element bean = beanList.get(i);
if("dataSource".equals(bean.attributeValue("id"))){ //--找到id为dataSource的bean节点
List<Element> propertyList = bean.elements(); //--得到所有property节点
jdbcInfo = new JdbcInfo();
for(int j=0; j<propertyList.size(); j++){ //--此层循环得到id为dataSource的bean下的所有property节点下数据
Element property = propertyList.get(j);
String temp_name = property.attributeValue("name"); //--得到driverClassName等数据库配置参数
String temp_value = property.attributeValue("value");
if("driverClassName".equals(temp_name)){
jdbcInfo.setDriverName(temp_value);
}else if("url".equals(temp_name)){
jdbcInfo.setUrl(temp_value);
}else if("username".equals(temp_name)){
jdbcInfo.setUsername(temp_value);
}else if("password".equals(temp_name)){
jdbcInfo.setPassword(temp_value);
}
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
// 公共的静态的入口点方法
public static ConfigReader getInstance() {
return configReader;
}
public JdbcInfo getJdbcInfo() {
return jdbcInfo;
}
public static void main(String args[]) {
JdbcInfo JdbcInfo = ConfigReader.getInstance().getJdbcInfo();
System.out.println(JdbcInfo.getDriverName());
System.out.println(JdbcInfo.getUrl());
System.out.println(JdbcInfo.getUsername());
System.out.println(JdbcInfo.getPassword());
}
}
public class JdbcInfo {
private String driverName;
private String url;
private String username;
private String password;
……省略get与set方法
}
学习笔记 ,暂记于此