2016-08-02 3 views
0

Я разрабатываю Java-приложение, которое необходимо связывать с базой данных Microsoft Access. Начиная с Java 8, соединение ODBC-JDBC было удалено. По этой причине мы начали изучать драйвер Native, драйвер JDBC.Включить Java 7 классы ODBC в Java 8

Мы использовали UCanAccess, и это, казалось, сработало хорошо, но после более интенсивного тестирования мы выяснили, что скорость обработки недостаточно высока, что означает, что мы не можем использовать это как замену.

Мы исследовали несколько библиотек, которые предоставляют эту функциональность, и ни один из них не может обеспечить нам требуемую скорость. Мы думаем о реорганизации (оптимизации) кода для повышения производительности, к сожалению, это требует времени.

Мы обнаружили блог, в котором описывается, как мы можем включить функциональность ODBC в Java 8, выбрав несколько классов из Java 7 JRE. Это был бы отличный способ выиграть некоторое время, чтобы мы могли оптимизировать код. http://bigfatball.blogspot.nl/2016/03/how-to-enable-jdbc-odbc-bridge-for-jdk-8.html

У нас есть контроль над установленной JRE (мы можем добавить банку и dll вручную), но нам нужно обновлять их время от времени.

- В чем опасность «взлома» этой функциональности Java 7 в Java 8?

+0

Вам необходимо предоставить Java 7, 8 JRE каждому компьютеру, на котором запущено ваше приложение. –

+1

* «Мы исследовали несколько библиотек, которые предоставляют эту функцию, и ни один из них не может обеспечить нам требуемую скорость». * - Включили ли это коммерческие драйверы JDBC для программного обеспечения для доступа или стороннего JDBC-ODBC?Кроме того, вы проверили собственный JDBC-ODBC Bridge в Java7, чтобы убедиться, что * он * обеспечит достаточную производительность? –

+0

@GordThompson Мы также тестировали некоторые коммерческие библиотеки, большинство из них имели ту же скорость, что и UcanAccess (также основанный на Jackcess), 1 библиотека выглядела многообещающей, но мы не продолжали исследования, так как у них есть высокая лицензионная плата для того, как мы хотим его использовать. (50 тыс. Фунтов) – PetK

ответ

1

Я не могу с чистой совестью рекомендовать "взлома" компоненты JDBC-ODBC Bridge из Java 7 в Java 8, потому что в стороне от него просто звучать как Bad   Идея ™, то JDBC-ODBC Bridge

  • никогда официально поддерживается и никогда не предназначены для использования в производстве,
  • было известно, глючит, и
  • никогда не был в состоянии правильно работать с ODBC доступа манипулировать символы Unicode выше код точки U + 007F.

Если бы я оказался в подобной ситуации, то я бы рассмотреть следующие вопросы:

  1. Если этот проект был только нацеливание на платформе Windows, и возможность взаимодействия с базой данных Access был существенным, то я бы серьезно рассмотреть вопрос о разработка приложения на C# вместо Java.

  2. Если кодирование на Java было абсолютным требованием, и я ожидал реорганизацию моего кода в ближайшей перспективе, то я попытался бы придерживаться Java 7 до завершения рефакторинга, а затем посмотреть, сможет ли UCanAccess предложить приемлемую производительность.

  3. Если работает на Java 8 прямо сейчас было поручено и мне нужно немедленно принять решение для работы с базами данных Access, я бы рассмотреть возможность установки SQL Server Express Edition (бесплатно), создание SQL Server «связанного сервера» для доступа базы данных, а затем с помощью драйвера JDBC SQL Server или jTDS для управления базой данных Access с использованием T-SQL.

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