Другой тип БД

Алексей Телерман добавил(а) 1 нед. назад
С ответом

Здравствуйте!

Появилась необходимость подключить БД Firebird. Можно ли это как-то сделать без стандартной поддержки платформой?

Лучший ответ
фото

Добрый день.

Посмотрите вот этот проект: https://github.com/cuba-labs/external-db

В нем используется in-memory database H2 следующим образом:

- В build.gradle в модуль core добавлена зависимость от драйвера H2. Это можно сделать из Студии, см. Project Properties > Advanced > Dependencies.

- В context.xml добавлено описание нового data source.

- В spring.xml модуля core этот data source регистрируется в контексте Spring.

- В сервисе MyServiceBean инжектируется data source и используется в методе loadData.

Вот таким образом можно работать с любой БД имеющей JDBC-драйвер. При желании результаты SQL запросов можно в сервисе не возвращать в виде списков имя-значение, а отобразить на неперсистентные сущности.

Комментарии (4)

фото
1

Подключить его нужно как внешнее хранилище

фото
1

Сразу уточню, что БД не будет использоваться как основная и поэтому не хотелось бы делать все по этой статье https://doc.cuba-platform.com/manual-6.6-ru/arbitrary_dbms.html

Мне в принципе нужно лишь выполнять selectы. Возможно обычный Spring Jdbc Template? И если да, то как до него достучаться?

фото
2

Добрый день.

Посмотрите вот этот проект: https://github.com/cuba-labs/external-db

В нем используется in-memory database H2 следующим образом:

- В build.gradle в модуль core добавлена зависимость от драйвера H2. Это можно сделать из Студии, см. Project Properties > Advanced > Dependencies.

- В context.xml добавлено описание нового data source.

- В spring.xml модуля core этот data source регистрируется в контексте Spring.

- В сервисе MyServiceBean инжектируется data source и используется в методе loadData.

Вот таким образом можно работать с любой БД имеющей JDBC-драйвер. При желании результаты SQL запросов можно в сервисе не возвращать в виде списков имя-значение, а отобразить на неперсистентные сущности.

фото
1

Большое спасибо