语境
在我们的应用程序中,我们使用超级用户输入的查询从数据库中对数据进行快照,然后使用 XML 保存该快照中的数据。如果我使用的是 .NET,我会使用 DataSet (+ DataTables) 和 DataViews,它们非常适合这个目的。但我在 Java 世界中,我的冲动选择是使用 XML 存储快照数据(这可以在项目的这个阶段轻松更改)。
问题 1
有没有什么东西可以让您在不必先为 Java 平台创建其结构的情况下对数据进行快照,就像 DataSet 为 .NET 所做的那样,并且允许稍后对该数据执行查询?我曾考虑将其存储在数据库中或使用 Apache Lucene,但对于这两种方法,我都必须管理数据库结构,而我不希望这样做。
问题2
假设您有以下 XML:
<data>
<record>
<user>ravi</user>
<age>32</age>
<city>calgary</city>
</record>
<record>
<user>spiderman</user>
<age>68</age>
<city>new york</city>
</record>
</data>
而且,在该数据上,我将执行以下查询:
age > 50 or city = 'new york'
该操作的结果将是原始 XML 的子集,其中仅包含与查询中的条件匹配的记录。
谢谢!