Как получить все объекты с помощью Berkeley DB, соответствующие условию

Я только вчера узнал о Berkeley DB и его производительности. Я хочу использовать его в проекте Java.

Я хотел бы знать, как получить все объекты, хранящиеся в моей БД, которые соответствуют определенному условию.

Например, у меня есть сохраненные объекты типа Message(int id, String value, Date date), и я хотел бы получить все сообщения за последние 10 минут.

Другими словами, что эквивалентно этому SQL-запросу

SELECT * FROM messages WHERE date < 2016-04-12T23:20:50.52Z

в базе данных Беркли.

Можно ли сделать это с помощью API Berkeley DB, или я должен сделать все это с помощью кода?

Заранее спасибо.


person Amine Zaine    schedule 24.04.2016    source источник


Ответы (1)


Berkeley DB — это хранилище ключей и значений. Если вы хотите сделать что-то более сложное, чем получить/установить значения по их идентификаторам, вам придется выполнить эту работу. Для этого есть модуль SQL. Я никогда не использовал его, но я бы не стал ставить слишком много фишек на это число.

Проблема, которую вы ставите, намного лучше решается в SQLite, который использует что-то вроде Berkeley DB под капотом и (конечно) поддерживает SQL. Он также поддерживает арифметику даты в правильно отформатированных строках.

person James K. Lowden    schedule 30.04.2016