将xml导入数据库的最佳方法是什么(使用java)

时间:2009-04-02 05:18:49

标签: java xml database

我刚刚编写了一个程序,用于使用dom4j将数据从xml文件导入数据库。它作为一系列包装在java中的xpath语句而备受瞩目 - 它确实有效,但我强烈认为有更好的方法可以做到这一点。

将数据从xml导入数据库的首选方法是什么?

6 个答案:

答案 0 :(得分:4)

根据您拥有的XML类型,JAXB(自1.6以来它是Java SE的标准部分)可能是最直接的处理方式。只需创建一个类似于XML结构的类,将字段的setter和getter以及@XmlRootElement注释添加到类的顶部。然后像

Unmarshaller um = JAXBContext.newInstance(YourClass.class).createUnmarshaller();
YourClass input = (YourClass) um.unmarshal(new FileReader("file.xml"));

将您的XML文件神奇地转换为Java对象。然后,应该很容易写入您选择的数据库。

答案 1 :(得分:2)

我发现Simple非常容易用于从XML创建Java对象。我们使用它来设置我们可以使用Hibernate存储的默认配置。

答案 2 :(得分:1)

我经常遇到同样的问题,并希望我在10年前拥有与现在相同的工具。

如果你需要将现有的XML读入普通的Java类,我个人认为apache digester比dom4j更优雅,更容易使用,因为你只需指定映射。

然后,使用Hibernate将材料写入数据库。

答案 3 :(得分:0)

这实际上取决于XML文件的格式。你能进一步详细说明吗?

就我而言,我有一个应用程序,它存储在XML中的简单Key-> Value对语法,其中我使用DOM迭代节点并生成SQL以插入数据。

使用XPath执行此操作将是一个非常好的解决方案

答案 4 :(得分:0)

在尝试其他任何事情之前,您应该先问几个问题:

  • 值得打扫吗?如果该应用程序不会被频繁使用,“不要修复那些没有破坏的东西”。
  • 经常会改变吗?在这种情况下,易于维护和可读性是至关重要的,dom4j可能并不差。
  • 表现是否重要?如果它没有任何差别,你的应用程序会在一半的时间内运行,请回到上一个项目:“更好”只会意味着更整洁。

答案 5 :(得分:0)

这当然取决于你在做什么。我假设你想要从XML文档中提取数据。如果是这样,xpath可能正常工作,但我个人仍然更喜欢数据绑定:读取XML,绑定到java对象,通过常规Bean / POJO访问器获取数据。 或者更好的是,如果使用ORM,绑定到/从对象ORM(如hibernate)可以使用。

对于datd绑定,我投票给JAXBXStream。如果使用xpath,我会使用任何DOM替代方案。