2017-02-06 22 views
-1

Мне нужна какая-то абстракция для базы данных в моем приложении Java. У меня есть база данных mySQL со всеми свойствами и внутренними данными приложения, а вторая - для данных результата. Мне нужно создать новые таблицы и заполнить их. Сложная часть заключается в том, что вторая БД может быть различной для каждого экземпляра приложения, поэтому это может быть Oracle DB или postgreSQL. Кто-нибудь знает какой-то инструмент, который позволяет мне написать одну версию SQL и перевести ее на конкретный диалект БД? Может ли спящий или весенний доступ помочь мне с этим? Спасибо за ответыАбстракция базы данных

Редактировать Мне нужно выполнить запрос, не связанный с каким-либо объектом, просто создать таблицу с динамически генерируемым именем

ответ

-1

Конечно, Hibernate (или любая другая реализация JPA [1]) поможет вам. JPA - это API, который позволит вам отображать ваши Java-компоненты в строки таблицы базы данных в абстрактной логике, в которой SQL вообще может не участвовать.

JPA имеет свой собственный JPQL [2] (SQL-подобный, объектно-ориентированный язык запросов), который будет переводить на конкретный диалект фактической базы данных, которую вы используете; и он имеет API критериев [3], который позволит вам запрашивать и извлекать данные из базы данных, используя вызовы методов типа.

  1. https://en.wikibooks.org/wiki/Java_Persistence/What_is_JPA%3F
  2. https://en.wikipedia.org/wiki/Java_Persistence_Query_Language
  3. https://en.wikibooks.org/wiki/Java_Persistence/Criteria
+0

Но могу ли я создать запрос, не связанный с каким-либо объектом? –

+0

Да, вы можете использовать JPQL для запросов cerate, не связанных с объектами, таких как агрегаты ('count',' group by' и т. Д.). –

+0

Спасибо, вот что я искал –

-1

Конечно спящий режим может помочь вам в этом. И самое главное, что вам даже не нужно писать SQL-запросы (HQL или Criteria будут выполнять вашу работу). Единственное, что вам нужно изменить данные БД (например, класс драйвера, драйвер и диалект и т. Д. Для установления соединения) при изменении экземпляров БД.

+0

@Wojciech Bugaj вам также необходимо скопировать базу данных на другой сервер БД (например, резервное копирование и восстановление) Do? Какова конкретная операция, которую вы хотите сделать? Объясните немного больше, так что будет легче ответить. – ashishakp

+0

Но могу ли я создать запрос, не связанный с каким-либо объектом? –

 Смежные вопросы

  • Нет связанных вопросов^_^