Есть ли что-то вроде .NET DataView / DataSet для Java, где я могу сделать снимок некоторых данных и затем выполнить запросы к ним? - PullRequest
1 голос
/ 18 марта 2010

Context

В нашем приложении мы снимок данных из базы данных, используя запрос, который вводится суперпользователем, а затем мы сохраняем данные из этого снимка с использованием 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 только с записями, которые соответствуют условиям в запросе.

Спасибо!

1 Ответ

1 голос
/ 18 марта 2010

Есть нечто похожее на RowSet, которое является частью спецификации JDBC. Вы можете получать данные и кэшировать их в CacheRowSet, которыми вы можете манипулировать или даже обновлять позже. Похоже, что есть также FilteredRowSet, так что вы можете создать представление, отображающее только те данные, которые вы хотите.

Это выглядит относительно аналогично ADO.NET DataView и DataSet. Обратите внимание, что RowSet не популярны в Javaland.

Еще несколько указателей:

...