Я хочу управлять базой данных Microsoft Access (файл .accdb или .mdb) из моего проекта Java. Я не хочу использовать мост JDBC-ODBC и драйвер Access ODBC от Microsoft, потому что:
- мост JDBC-ODBC был удален из Java SE 8 и не поддерживается (см. здесь ),
- мост JDBC-ODBC не работает должным образом с драйвером Access ODBC, когда текст включает символы Unicode с кодовыми точками выше U + 00FF (см. здесь ), поэтому такая настройка не сможет обрабатывать такие символы, как греческий, русский, китайский , Арабский и т. Д.,
- драйвер Access ODBC от Microsoft работает только в Windows, и
- существуют отдельные 32-разрядные и 64-разрядные версии ядра СУБД Access (и драйвера ODBC), которые могут мешать развертыванию.
Я видел другие ответы, в которых упоминался драйвер JDBC для баз данных Access с именем UCanAccess. . Как я могу настроить свой Java-проект для использования этого подхода?
(Мы также приветствовали бы ответы, предлагающие более эффективные способы работы с базами данных Access из Java.)
java
ms-access
ucanaccess
Горд Томпсон
источник
источник
Ответы:
UCanAccess - это чистый драйвер JDBC для Java, который позволяет нам читать и записывать в базы данных Access без использования ODBC. Для выполнения этих задач он использует два других пакета, Jackcess и HSQLDB . Ниже приведен краткий обзор того, как его настроить.
Вариант 1. Использование Maven
Если в вашем проекте используется Maven вы можете просто включить UCanAccess через следующие координаты:
groupId: net.sf.ucanaccess
artifactId: ucanaccess
Ниже приводится выдержка из
pom.xml
, вам может потребоваться обновить,<version>
чтобы получить самую последнюю версию:Вариант 2: добавление файлов JAR в проект вручную
Как упоминалось выше, UCanAccess требует Jackcess и HSQLDB. У Jackcess, в свою очередь, есть свои зависимости . Итак, чтобы использовать UCanAccess, вам необходимо включить следующие компоненты:
UCanAccess (ucanaccess-xxxjar)
HSQLDB (hsqldb.jar, версия 2.2.5 или новее)
Jackcess (jackcess-2.xxjar)
commons-lang (commons-lang-2.6.jar или более новая версия 2.x )
commons-logging ( commons-logging-1.1.1.jar или более новая версия 1.x )
К счастью, UCanAccess включает все необходимые файлы JAR в свой файл распространения. Когда вы его разархивируете, вы увидите что-то вроде
Все, что вам нужно сделать, это добавить все пять (5) JAR в свой проект.
Eclipse: щелкните проект правой кнопкой мыши в проводнике пакетов и выберите
Build Path > Configure Build Path...
. Нажмите кнопку «Добавить внешние JAR…», чтобы добавить каждый из пяти (5) JAR. Когда вы закончите, ваш путь сборки Java должен выглядеть примерно такNetBeans: разверните представление в виде дерева для вашего проекта, щелкните правой кнопкой мыши папку «Библиотеки» и выберите «Добавить JAR / папку ...», затем перейдите к файлу JAR.
После добавления всех пяти (5) файлов JAR папка «Библиотеки» должна выглядеть примерно так:
IntelliJ IDEA: выберите
File > Project Structure...
в главном меню. На панели «Библиотеки» нажмите кнопку «Добавить» (+
) и добавьте пять (5) файлов JAR. Как только это будет сделано, проект должен выглядеть примерно так:Это оно!
Теперь "U Can Access" данные в файлах .accdb и .mdb с использованием такого кода
раскрытие
На момент написания этого Q&A я не участвовал в проекте UCanAccess и не был связан с ним; Я просто использовал это. С тех пор я стал участником этого проекта.
источник
net.ucanaccess.jdbc.UcanaccessDriver