Это плохая идея использовать JNI для использования JDBC в C / C ++?

Я думаю о запуске проекта, который будет взаимодействовать с несколькими СУБД. Хотя JDBC недоступен непосредственно из C / C ++, он остается привлекательным по следующим причинам:

  1. Мое программное обеспечение должно быть переносимым между Windows / OSX / Linux. Насколько мне показалось, управление ODBC на каждой из этих платформ на нескольких архитектурах кажется очень громоздким.
  2. Я планировал распространять библиотеки JDBC с моим приложением. Это кажется лучшим вариантом, чем попытка распространения каждого драйвера ODBC для нескольких сред.
  3. Я гораздо лучше знаком с JDBC, чем с ODBC.
  4. Кажется, что в некоторых случаях JDBC может лучше поддерживаться.

Я почти убедил себя, что это путь. Однако я не знаю, ведет ли моя неопытность с ODBC и JNI к наивным выводам.

Пожалуйста, порекомендуйте.

-1

Решение

Я бы не стал использовать JNI / Java только ради ODBC. В Windows просто используйте собственный ODBC API. На * nix unixodbc работает хорошо. Также есть сторонние поставщики, такие как Progress (DataDirect).

Единственное, что я видел в unixodbc (и это не проблема unixodbc) — это смешивание Sybase ASE. & Sybase IQ. Драйверы, предоставляемые Sybase для двух СУБД, построены по-разному, что делает их несовместимыми во время выполнения для систем x64 (одна из них рассчитана на 32-битные типы, другие 64-битные типы и unixodbc должны быть собраны в соответствии с необходимым драйвером, и вы не можете использовать оба одновременно).

Я также рекомендовал бы использовать слой абстракции, такой как ++ ODBC (к сожалению, кажется, что не поддерживается активно — и обратите внимание, что последний odbc ++ имеет проблемы с 64-битной совместимостью из коробки), или OTL (который активно поддерживается).

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]