经过第二周,本周需要作的是基于XML的数据倒入,刚开始完全不了解思路,询问了一下老师,老师指导需要从XML中获得Excel标题行与数据库字段的关系,然后通过此关系导入。
下面是读取当前工程中的XML获得了Excel的标题行的字符串数组,和数据库表字段名成的数组,不知道思路对不,(主要是操作XML)。。之后通过这个对应关系取代if,估计只是最简单的XML实现,之后还有更加详细。
XML如下:
<?xml version="1.0" encoding="utf-8"?>
<mapping>
<property name="学号">
<column name="xh" />
</property>
<property name="姓名">
<column name="xm"/>
</property>
<property name="性别">
<column name="xb" />
</property>
<property name="出生时间">
<column name="cssj"/>
</property>
<property name="专业号">
<column name="zy_id"/>
</property>
<property name="学分">
<column name="zxf" />
</property>
<property name="备注">
<column name="bz"/>
</property>
</mapping>
java主类:
import java.io.File;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
public class XmlMain {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
DocumentBuilderFactory factory = DocumentBuilderFactory
.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.parse(new File("src/ExcelXml.xml"));
String version = document.getXmlVersion();
String encoding = document.getXmlEncoding();
System.out.println(version);
System.out.println(encoding);
Element root = document.getDocumentElement();
String rootName = root.getNodeName();
System.out.println("XML根节点的名称为: " + rootName);
NodeList nodelist = document.getElementsByTagName("property"); // 获取节点的集合
int size = nodelist.getLength();
String xls[]=new String[size];
String db[]=new String[size];
for (int i = 0; i < size; i++) {
Node node = nodelist.item(i); // 获取节点
String name = node.getNodeName();
//NamedNodeMap attributes = node.getAttributes();
String nodeValue = node.getAttributes().getNamedItem("name").getNodeValue();
xls[i]=nodeValue;
//node.getNodeName().equals("column");
String nodeValue2 = node.getFirstChild().getNextSibling().getAttributes().getNamedItem("name").getNodeValue();
db[i]=nodeValue2;
System.out.println(name);
System.out.println("xsl["+i+"]="+xls[i]);
System.out.println("db["+i+"]="+db[i]);
}
}
catch (Exception e) {
System.out.println(e);
}
}