2011-12-15 122 views
-1

您是否瞭解將XML解析爲數據庫的最高性能方法。XML解析:將XML數據插入到數據庫中:性能

「最快的方式」。

讀取XML,做一些檢查,然後將結果插入數據庫。

謝謝。

+0

最高效的方法是使用XML數據存儲而不做任何解析。如果這是不可接受的,你需要告訴我們爲什麼。 – 2011-12-15 19:20:42

+0

@med_alpa:歡迎來到Stackoverflow。不要忘記仔細閱讀[常見問題](http://stackoverflow.com/faq)的所有部分。您將獲得徽章並改善您的Stackoverflow體驗。 – menjaraz 2011-12-22 09:31:11

回答

0

主要問題是

你希望它通過程序來完成或已經提出的申請?

編程方式

這取決於XML是怎麼寫的。如果標籤/屬性名稱與數據庫表/列匹配,那麼您可以用非常簡單的方式編寫它,如果不是,則需要首先映射xml標籤/屬性名稱以匹配數據庫結構。

要得到正確的答案,我需要知道您將要寫入的當前語言。

應用

一個例子: http://www.altova.com/databasespy/database-import-export.html

0

兩件事情要考慮:

  1. 確保您解析使用流API,如SAX或StAX的你的XML,而不是穿行使用DOM API。
  2. 使用預先準備的語句,批量插入批處理,比如1000個插入。

在Java中,您可以使用StaxMate,它可以爲您提供StAX上方的一個小圖層。然後做一個內部循環的檢查和插入:

準備像外循環數據庫插入語句:

Connection conn = ... 
    PreparedStatement ps = conn.prepareStatement("INSERT INTO ... (...) VALUES (?, ?,...)"); 
    static int i=0; 

而在內部循環:

ps.setInt(1, a); 
ps.setString(2, b); 
... 
ps.addBatch(); 
if(++i % 1000==0) ps.executeBatch()