2011-12-15 127 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()