0

リレーションを持つノード (約 10K から 20K) で構成される 10 MB 以上の xml ファイルがあります。

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

ここで、このファイルを解析し、すべての詳細を「supervisorID」というフィールド (ID) を持つ「Employee」テーブルを使用して DB に保存します。これまで、私はすべての従業員のリストを作成してから、上司の関係を見つけるためにリストを反復しようとしました。

これを行うためのメモリ効率が高く、より高速な方法を提案してください。この種の問題を処理するためにどのライブラリを使用できますか?

4

2 に答える 2

1

+をXML使用してファイルから Java オブジェクトにデータを変換しJAXB、Java オブジェクトをデータベースに挿入できます。 2 つの DTO を作成できます- Emplyoyee に関するすべての情報 (名前、年齢など)と JAXBアンマーシャリング用 HibernateJPA

Emplyoyee

EmplyoyeesList<Emplyoyee>

編集:JAXBとJPAなし

javascriptを使用してファイルを解析し、inf Ajaxを使用してSQLクエリを送信できます。

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  
}
于 2012-09-19T19:54:53.943 に答える
1

EclipseLinkが提供するMOXyフレームワークを見てください。実際、バックグラウンドでJAXB実装を使用しています。しかし、 JPAで ORM も行います。

于 2012-09-19T21:33:19.813 に答える