Можно ли использовать Qi4j с базами данных SQL?

Меня интересует Qi4j, но я не знаю, насколько хорошо он подходит для баз данных SQL.

Я хотел бы знать, что Qi4j предоставляет для поддержки баз данных SQL?

Спасибо!

2 ответа

Решение

Поддержка SQL Qi4j, как и все Qi4j, является коллекцией библиотек и расширений.

Во-первых, вы можете использовать Qi4j в приложениях, которые уже используют что-то еще для обработки персистентности (JDBC, JPA или любую другую технологию). Ядро Qi4j невелико, и вы можете свободно использовать библиотеки или расширения, представленные в SDK, или нет.

Если вы не хотите использовать поддержку персистентности Qi4j (т. Е. Entities и Query API), вы все равно можете использовать библиотеку SQL, которая позволяет управлять источниками данных (пулами соединений) в качестве Qi4j Services. Как указано в документации, библиотека SQL предоставляет вам бесплатную интеграцию с CircuitBreaker Library и Qi4j I/O API. Более того, вы можете либо импортировать существующий DataSource (полезно, если вы развертываете свое приложение в контейнере и хотите, чтобы этот контейнер управлял DataSource), либо использовать любую из следующих реализаций пулов соединений: Apache DBCP, C3P0 или BoneCP. См. http://qi4j.org/latest/library-sql.html

Постоянство Qi4j зависит от сущностей, хранящихся в EntityStore. SDK предоставляет множество реализаций EntityStore, в том числе основанных на базах данных SQL. Поддерживаются следующие базы данных: PostgreSQL, MySQL, MariaDB, SQLite (встроенный), H2 (встроенный или серверный) и Apache Derby (он же Oracle JavaDB, как во встроенном, так и в серверном режимах). См. http://qi4j.org/latest/extension-es-sql.html

Qi4j Query API использует службы индексирования / запросов. Опять же, SDK предоставляет несколько реализаций, включая одну, основанную на базах данных SQL. На момент написания он поддерживал только PostgreSQL в качестве бэкэнда, но ведется работа по поддержке такого же количества баз данных SQL, как и хранилища SQL EntityStore. См. http://qi4j.org/latest/extension-indexing-sql.html

Наконец, пример приложения демонстрирует, как использовать всю поддержку SQL, предоставляемую Qi4j SDK, с которой вы можете начать. См. http://qi4j.org/latest/sample-sql-support.html

/Павел

Давно пора улучшить поддержку SQL, и в настоящее время ведется работа по сохранению моделей Apache Polygene (ранее известной как Qi4j) в реляционной модели SQL. В отличие от предыдущего хранилища сущностей SQL, в котором объекты JSON хранились фактически в хранилище значений ключей в SQL, это хранилище сущностей помещает каждое свойство в свой собственный столбец и использует отдельные таблицы для отношений "многие ко многим" (обратное сопоставление "один к"). Многие отношения не поддерживаются).

Ожидается, что он будет включен в выпуск 3.1.0 к концу 2017 года.

Другие вопросы по тегам