Yahoo анонсировала SquiDB, уровень базы данных SQLite с открытым исходным кодом для Android.
SquiDB разработан, чтобы позволить вам работать с базами данных SQLite, сохраняя при этом мощность и гибкость чистого SQL. Он сочетает в себе функции ORM с объектно-ориентированными построителями операторов SQL, что позволяет избежать необходимости иметь строки SQL в вашем коде Java. SquiDB также включает встроенные инструменты и хуки, которые вы можете использовать для записи миграции базы данных, а также для реализации ContentProviders.
SquiDB представляет строки в ваших таблицах SQLite как объекты, и, по словам разработчиков Сэма Босли и Джонатана Корена в блоге Yahoo Engineering, использует генерацию кода времени компиляции, чтобы вы могли определять свои модели / схемы таблиц как можно меньше — фактический код, с которым вы будете работать генерируется во время компиляции. Вы используете объект DatabaseDao для чтения и записи этих объектов из базы данных. Сгенерированный класс модели также определяет постоянные поля, на которые можно ссылаться при построении запросов.
В сообщении блога говорится, что объект запроса SquiDB и связанные классы поддерживают почти всю грамматику SQL таким образом, чтобы он был более чистым и простым в обслуживании, особенно для сложных запросов, как показано в этом примере:
(щелкните код, чтобы увеличить)
Шаблон, используемый многими методами SQLite, включая методы запросов, заключается в том, что при написании запроса вы используете заполнители для аргументов, которые будут переданы в инструкцию. Значения этих аргументов помещаются в отдельную строку. Как указано в сообщении в блоге, это затрудняет чтение кода и требует дополнительного массива строк для аргументов. SquiDB вставляет эти заполнители для вас при компиляции объекта Query и автоматически связывает аргументы во время запроса.
Разработчики говорят, что SquiDB может помочь вам работать с представлениями SQL, используя объекты модели, записывать миграции базы данных и реализовывать гибкие ContentProvider, поддерживаемые вашей базой данных SQLite.