java xml解析大文件和db关系

时间:2012-09-19 19:48:04

标签: java xml

我有一个10+ MB的xml文件,包含有关系的节点(大约10K到20K)。

<.....>
<Emplyoyee>
    <name>Jack</name>
    <age>35</age>
    <supervisor></supervisor>
    <....>
</Emplyoyee>
<.....>
<.....>
<.....>
<Emplyoyee>
    <name>Smith</name>
    <age>20</age>
    <supervisor>Jack</supervisor>
    <....>
</Emplyoyee>
<.....>

现在,我想解析这个文件并将所有细节存储在DB中,其中“Employee”表有一个名为“supervisorID”的字段(ID)。到目前为止,我已经尝试制作所有员工的列表,然后迭代列表以查找主管关系。

请建议我使用内存高效且快捷的方法。我可以使用哪些库来处理这类问题。

2 个答案:

答案 0 :(得分:1)

您可以使用XML将数据从JAXB文件转换为Java对象,并使用Hibernate + JPA将Java对象插入数据库。
您可以创建2个DTO
Emplyoyee - 包含有关Emplyoyee的所有信息(姓名,年龄,......)

Emplyoyees List<Emplyoyee>用于JAXB解组

编辑:没有JAXB和JPA

您可以使用 javascript 解析文件,并发送 SQL 查询 Ajax

var xmlDoc = new ActiveXObject("MSXML.DOMDocument");  
xmlDoc.async = false;
xmlDoc.preserveWhiteSpace = true;
xmlDoc.load(pathToFile);
var nodes = xmlDoc.selectNodes("/Emplyoyee");  
for (var node = nodes.nextNode(); node != null; node = nodes.nextNode())
{
   // get another nodes, create SQL query and sent it to server usinj Ajax  
}

答案 1 :(得分:1)

查看 EclipseLink 提供的MOXy框架。它实际上在后台使用 JAXB 实现。但是ORM的内容也是 JPA