本文读xml文件内容主要用的包是dom4j.jar
<?xml version="1.0" encoding="UTF-8"?>
<main>
<common>数据库连接配置</common>
<src>
<className>org.h2.Driver</className>
<url>jdbc:h2:tcp://localhost:9123/component_internal</url>
<userName>sa</userName>
<password></password>
</src>
<desc>
<className>com.microsoft.sqlserver.jdbc.SQLServerDriver</className>
<url>jdbc:sqlserver://10.0.0.35:1433; DatabaseName=test</url>
<userName>ams</userName>
<password>ams</password>
</desc>
<exclude>
<!--创建表-->
<create_tables>
<table>多个</table>
</create_tables>
<!--导出数据表-->
<import_data>
<table>多个</table>
</import_data>
</exclude>
</main>
package com.miracle.cms.db2db.utils;
import com.miracle.cms.db2db.model.ConnectModel;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import java.lang.String;
import java.lang.System;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
/**
* Created with IntelliJ IDEA.
* User: lianan
* Date: 14-6-26
* Time: 下午4:50
* To change this template use File | Settings | File Templates.
*/
public class ConnectionConfig {
private static ConnectionConfig config;
private static ConnectModel srcModel = new ConnectModel();
private static ConnectModel descModel= new ConnectModel();
private static Element element;
private ConnectionConfig() throws DocumentException {
SAXReader reader = new SAXReader();
String filePath = this.getClass().getResource("/")+"connection-config.xml";
Document document = reader.read(filePath);
this.element = document.getRootElement();
}
static{
if(null == config) try {
config = new ConnectionConfig();
} catch (DocumentException e) {
e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
}
}
public static ConnectModel getRoot(String rootName,ConnectModel connectModel) throws DocumentException {
for (Iterator i = element.elementIterator(rootName); i.hasNext();) {
Element foo = (Element) i.next();
connectModel.setClassName(foo.elementText("className"));
connectModel.setUrl(foo.elementText("url"));
connectModel.setUsername(foo.elementText("userName"));
connectModel.setPassword(foo.elementText("password"));
}
return connectModel;
}
public static List<String> getRoot(String elementName){
List<String> list= new ArrayList<String>();
List<Element> elements = element.element("exclude").element(elementName).elements("table");
for(int i=0;i<elements.size();i++){
String text = elements.get(i).getTextTrim();
if(!"".equals(text)){
list.add(text);
}
}
return list;
}
public static ConnectModel getSrcConnectionConfig() throws DocumentException {
return getRoot("src",srcModel);
}
public static ConnectModel getDescConnectionConfig() throws DocumentException {
return getRoot("desc",descModel);
}
public static List<String> getExcludeCreateTables(){
return getRoot("create_tables");
}
public static List<String> getExcludeImportDataTables(){
return getRoot("import_data");
}
public static void main(String arg0[]) throws DocumentException {
System.out.println(getDescConnectionConfig().getClassName());
}
}