【发布时间】:2009-04-02 05:18:48
【问题描述】:
我刚刚编写了一个程序,用于使用 dom4j 将数据从 xml 文件导入数据库。它最终成为一系列用 java 包装的 xpath 语句,并且它有效,但我强烈认为有更好的方法来做到这一点。
将数据从 xml 导入数据库的首选方法是什么?
【问题讨论】:
我刚刚编写了一个程序,用于使用 dom4j 将数据从 xml 文件导入数据库。它最终成为一系列用 java 包装的 xpath 语句,并且它有效,但我强烈认为有更好的方法来做到这一点。
将数据从 xml 导入数据库的首选方法是什么?
【问题讨论】:
根据您拥有的 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 对象。那么写入您选择的数据库应该很容易。
【讨论】:
我发现Simple 非常容易用于从 XML 创建 Java 对象。我们使用它来设置默认配置,然后我们可以使用 Hibernate 进行存储。
【讨论】:
我经常遇到同样的问题,希望 10 年前我拥有和现在一样的工具。
如果你需要将现有的 XML 读入普通的 Java 类,我个人认为 apache digester 比 dom4j 更优雅,更容易使用,因为你只需指定映射。
然后,使用 Hibernate 将材料写入数据库。
【讨论】:
这实际上取决于您的 XML 文件的格式。能否进一步说明?
在我的例子中,我有一个应用程序,它在 XML 中存储了一个简单的 Key->Value 对语法,我在其中使用 DOM 遍历节点并生成 SQL 来插入数据。
使用 XPath 来做这将是一个完美的解决方案
【讨论】:
在尝试其他任何事情之前,您应该问自己几个问题:
【讨论】: