Язык абстракции базы данных для Java - PullRequest
5 голосов
/ 21 марта 2011

Проблема: мне нужно абстрагироваться от взаимодействия с моей базой данных в моем приложении.Дело в том, что JPA не работает для меня, потому что таблицы / схемы являются динамическими, и я знаю их только во время выполнения.Я думал о создании классов динамически, но я смотрю на проблемы производительности с этим подходом, так как каждая вставка привела бы к созданию экземпляра класса с использованием отражения.Я думал об использовании XML для моделирования, но он также кажется медленным и немного сложным в управлении.

Что я ищу?Я ищу какой-то язык среднего уровня (что-то вроде JPQL [Java Persistence Query Language]), который мне не нужно отображать на объекты.Некоторый язык, который абстрагирует создание схемы / каталога и таблицы, а также запросы, используя предложение select.

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

1 Ответ

3 голосов
/ 21 марта 2011

Я почти уверен, что в hibernate есть режим без объектов, где сущности описываются с помощью Карт.и вы можете настроить Hibernate Factory во время выполнения, если вы этого хотите.Я считаю, что комбинация этих функций может сделать то, что вам нужно.

Тем не менее, я работал на аналогичной системе на моей последней работе.мы хотели функциональный слой, который был абстрагирован от уровня данных.уровень данных сам по себе не был «динамическим», он просто не был известен во время компиляции.в итоге мы создали систему, которая загрузила файл конфигурации, который определил схему db и мог генерировать sql для этой схемы.нам нужен был довольно высокий уровень контроля над полученным sql, поэтому мы в итоге создали нашу собственную библиотеку sql building, которую мы открыли как SqlBuilder .SqlBuilder лучше всего подходит для генерации запросов с использованием схемы БД в памяти (которую мы создали из файла конфигурации).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...