0

Мы создаем приложение, зависящее от машины.
Теперь мы развертываем наше приложение на нескольких клиентских компьютерах, но проблема в том, что каждый клиент имеет базу данных от разных поставщиков. В настоящее время мы сталкиваемся с конфликтами между SQL Server и Oracle.
Наше приложение построено на базе данных Oracle, и теперь мы хотим получить доступ к SQL Server. Есть ли способ сделать это, поскольку я немного любитель с базами данных, и я не хочу изменять запросы и настройки конфигурации для разных баз данных.
Мост между Oracle и MS SQL Server

ответ

3

Что вам нужно - это то, что обеспечивает слой, обеспечивающий независимость базы данных. Существует множество способов сделать это.

  • Вы можете использовать ORM технологии (Object Relational Mapping), такие как JPA (с Hibernate является ярким примером). Типичная реализация JPA имеет бэкэнды для целого ряда различных баз данных.

  • Вы можете использовать существующий продукт, который поддерживает независимость базы данных (грубо говоря), отображая операторы SQL между различными диалектами SQL.

  • Некоторые люди предлагают использовать ODBC.

  • Вы можете реализовать API DAO с различными классами реализации DAO для каждой базы данных. Если вы придерживаетесь максимально совместимых с SQL-92 DDL и DML, есть хороший шанс, что между реализациями DAO будет много общности. (JDBC обеспечивает независимость базы данных на уровне API, при условии, что вы не используете расширения для конкретных поставщиков. Напомню, что проблемы с драйверами JDBC от Oracle делают вещи нестандартными способами ... но теперь они могут теперь действовать вместе.)


... Я не хочу, чтобы изменить запросы и настройки конфигурации для различных баз данных.

Если вы используете ORM и его язык запросов, вам не придется. Если вы реализуете свой материал базы данных с помощью SQL и JDBC, это в значительной степени зависит от стандарта SQL и стандартных методов API JDBC соответственно.

Связанный вопрос:

0

Рекомендуемый подход заключается в использовании ORM инструментов, такими как Hibernate. если это невозможно, используйте StoredProcedures (убедитесь, что он использует только обычные PL SQL и не имеет специальных возможностей для базы данных) для операций с базой данных

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