Как написать SQL, чтобы его можно было запустить в любой базе данных - PullRequest
0 голосов
/ 19 ноября 2018

Мне нужно написать приложение (на сервере 1), которое будет генерировать SQL.SQL будет передан на другой сервер (сервер 2).Другое приложение, развернутое на сервере 2, выполнит запрос к базе данных, развернутой на сервере 2.

Теперь могут быть разные типы баз данных, и запрос будет не простым (может быть 200 строк запроса).Существует ли какое-либо стороннее приложение (например, Hibernate), которое я могу использовать для создания запроса, может быть в другом формате (например, HQL), которое можно перенести на сервер 2, и приложение на сервере 2 преобразует его в специфичный для БД SQLи запустить его?

Я использую Spring & Java 8 для написания приложения.

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

Ответы [ 2 ]

0 голосов
/ 19 ноября 2018

Почему бы не использовать ORM - JPA или Hibernate и переместить запросы в настраиваемый другой XML, который работает для каждой платформы / БД? Развернуть XML на основе БД ...

Здесь нет ярлыков, но если вы используете стандарты ANSI SQL, которые не зависят от платформы и используются в качестве основы для большинства систем баз данных, включая Microsoft SQL Server, Oracle, MySQL, IBM DB2 и т. Д., Ваши запросы должны работать практически без проблем. Очевидно, что вы потеряете дополнительные возможности базы данных.

0 голосов
/ 19 ноября 2018

Это невозможно для собственного SQL-запроса.Но если вы используете любую технологию ORM, такую ​​как Hibernate, то это возможно.Hibernate dailect сгенерирует для вас другой запрос к базе данных.Хотя hibernate является технологией ORM, он определяет отношения с объектами, которые будут представлять таблицу вашей базы данных.Обычно мы называем эти объекты как сущность.ТАК если вы хотите использовать другую базу данных, то проблем не будет.Но вы должны изменить dailelect для разных баз данных.

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