項目上有需要讀取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方法
}
學習筆記 ,暫記於此