XML解析:将XML数据插入到数据库中:性能
答
主要问题是
你希望它通过程序来完成或已经提出的申请?
编程方式
这取决于XML是怎么写的。如果标签/属性名称与数据库表/列匹配,那么您可以用非常简单的方式编写它,如果不是,则需要首先映射xml标签/属性名称以匹配数据库结构。
要得到正确的答案,我需要知道您将要写入的当前语言。
应用
一个例子: http://www.altova.com/databasespy/database-import-export.html
答
两件事情要考虑:
- 确保您解析使用流API,如SAX或StAX的你的XML,而不是穿行使用DOM API。
- 使用预先准备的语句,批量插入批处理,比如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()
最高效的方法是使用XML数据存储而不做任何解析。如果这是不可接受的,你需要告诉我们为什么。 – 2011-12-15 19:20:42
@med_alpa:欢迎来到*。不要忘记仔细阅读[常见问题](http://*.com/faq)的所有部分。您将获得徽章并改善您的*体验。 – menjaraz 2011-12-22 09:31:11