使用dom4j讀取xml鏈接數據庫與之單例模式

使用dom4j讀取xml ,加入jar包 mysql

 

dom4j-1.6.1.jar
jaxen-1.1-beta-6.jarweb

public class XmlConfigReader {
//懶漢式,延遲加載
private static XmlConfigReader instance=null;
private JdbcConfig jdbcConfig;
private XmlConfigReader(){
SAXReader reader=new SAXReader();
//獲取當前線程的輸入流
InputStream in=Thread.currentThread().getContextClassLoader().
getResourceAsStream("mysql-config.xml");
try {
//獲取xml整個文檔
Document doc=reader.read(in);
//獲取節點 driverName
Element driverElt=(Element) doc.selectObject("/config/db-info/driverName");
//獲取節點 url
Element urlElt=(Element) doc.selectObject("/config/db-info/url");
//獲取節點 userName
Element userNameElt=(Element) doc.selectObject("/config/db-info/userName");
//獲取節點 password
Element passwordElt=(Element) doc.selectObject("/config/db-info/password");
String driverName=driverElt.getStringValue();
String url=urlElt.getStringValue();
String userName=userNameElt.getStringValue();
String password=passwordElt.getStringValue();
jdbcConfig=new JdbcConfig(driverName, url, userName, password);

} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}sql

//注意用一個線程,由於單例模式有線程安全的問題,比如web咱們學習的servlet,因此要加synchronized 
public static synchronized XmlConfigReader getInstance(){
if(instance==null){
instance=new XmlConfigReader();
}


return instance;
}
public JdbcConfig getJdbcConfig(){
return jdbcConfig;
}
public static void main(String[] args) {安全

//測試了一下,沒問題
JdbcConfig jdbcConfig = XmlConfigReader.getInstance().getJdbcConfig();

System.out.println(jdbcConfig);
}dom

相關文章
相關標籤/搜索