dom4jを使用してxmlファイルからデータベースにデータをインポートするプログラムを作成しました。それは、Javaでラップされた一連のxpathステートメントとして終わります - それはうまくいきますが、これを行う良い方法があると強く感じています。xmlをデータベースにインポートする最良の方法(javaを使用)
xmlからdbにデータをインポートする好ましい方法は何ですか?
dom4jを使用してxmlファイルからデータベースにデータをインポートするプログラムを作成しました。それは、Javaでラップされた一連のxpathステートメントとして終わります - それはうまくいきますが、これを行う良い方法があると強く感じています。xmlをデータベースにインポートする最良の方法(javaを使用)
xmlからdbにデータをインポートする好ましい方法は何ですか?
JAXB(これはJava SEの標準の1.6です)は、それを処理する最も簡単な方法です。 XML構造に似たクラスを作成し、フィールドのセッターとゲッターを入れ、クラスの先頭に@XmlRootElementアノテーションを入れてください。次に、
Unmarshaller um = JAXBContext.newInstance(YourClass.class).createUnmarshaller();
YourClass input = (YourClass) um.unmarshal(new FileReader("file.xml"));
のように、XMLファイルをJavaオブジェクトに魔法のように変換します。それから、あなたが選んだDBに書き込むのは簡単なはずです。
本当にXMLファイルの形式によって異なります。あなたはさらに精緻化できますか?
私の場合、単純なKey-> Valueペア構文がXMLに格納されているアプリケーションがあります。この構文では、DOMを使用してノードを反復し、SQLを生成してデータを挿入します。これを行うために、XPathを使用して
は完全に罰金ソリューション
だろう、私は多くの場合、同じ問題を抱えていた、と私は10年前、私が今と同じツールがあればいいのに。
既存のXMLを通常のJavaクラスに読み込む必要がある場合は、マッピングを指定するだけで、apacheダイジェストはdom4jよりはるかにエレガントで使いやすいものと個人的に考えています。
次に、Hibernateを使用して資料をデータベースに書き出します。
いくつかの質問がありますが、あなたは何かをしようとする前に自問してみてください。
Simpleは、XMLからJavaオブジェクトを作成するのに非常に使いやすいとわかりました。これを使ってHibernateを使って保存できるデフォルト設定を設定します。
JAXbの問題は、xsdが必要だということです。 –
うーん、いいえ。私は上記のコードを正確に使用しており、xdsはありません。構造は上記のクラス(YourClass)として表されます。 –