Чтение базы данных Access из Java (Eclipse)

Я использую Windows 7 (64-разрядная версия). Я установил 64-битные версии Eclipse и JRE, но при попытке чтения из Access у меня возникли проблемы.

Кажется, единственный способ использовать ODBC - это использовать 32-битный вариант, но он не совпадает. Похоже, что Java должна работать в 32-битном режиме, чтобы иметь возможность использовать его.

Могу ли я просто изменить Java (выбрать в свойствах проекта во время выполнения?), Или я должен переустановить Eclipse на 32-битную версию?

Я думаю, что я только установил JRE (?)

Я попытался с драйвером JDBC "UCanAccess", но я думаю, что мне, вероятно, также нужна 32-разрядная среда выполнения.

Я запускаю свою программу в Eclipse, она предназначена только для чтения данных и создания разных XML. Есть ли альтернативные драйверы? для Access или Excel (или любой другой бесплатной базы данных)?

2 ответа

Проще говоря: 64-битная Windows поддерживает как 32-битные, так и 64-битные компоненты - так что вы можете выбрать либо 32-битный стек, либо 64-битный стек для вашего приложения - но все, что загружается в память вместе (Eclipse, JRE, драйвер JDBC для источников данных ODBC, драйвер ODBC) должны иметь одинаковую разрядность.

Держу пари, что ваш драйвер ODBC для Access и / или Access сам по себе является 32-разрядным, даже если ваша среда Windows является 64-разрядной.

Исходя из этого, я думаю, вам нужно добавить 32-битный Eclipse и / или Java в вашу среду (независимо от того, сохраняете ли вы 64-битные компоненты) или установить 64-битный драйвер ODBC для Access и / или 64-битный доступ.

Эта статья на сайте моего работодателя об использовании 32-битного ODBC в 64-битной Windows может помочь вам...

Также обратите внимание - мост JDBC-to-ODBC, встроенный в JVM, НЕ рекомендуется для производственного использования и не включен ни в Java 8, ни в любую более позднюю версию JVM. Вы можете рассмотреть вариант замены моста ODBC-JDBC от моего работодателя.

Я попытался с драйвером JDBC "UCanAccess", но я думаю, что мне, вероятно, также нужна 32-битная среда выполнения.

Нет. UCanAccess - это реализация на чистом Java, которая не использует Access ODBC, поэтому она будет работать под любой используемой JVM: 64-разрядной или 32-разрядной, Windows / Linux / Mac, Java 7 или Java 8. (Более ранние версии Также может поддерживаться Java; проверьте подробности на сайте UCanAccess.)

См. Следующую статью переполнения стека для получения дополнительной информации о том, как его настроить:

Управление базой данных Access из Java без ODBC

Другие вопросы по тегам