Ich möchte eine Microsoft Access-Datenbank (.accdb- oder .mdb-Datei) aus meinem Java-Projekt heraus bearbeiten. Ich möchte die JDBC-ODBC-Bridge und den Access ODBC-Treiber von Microsoft nicht verwenden, weil:
- Die JDBC-ODBC-Brücke wurde aus Java SE 8 entfernt und wird nicht unterstützt (siehe hier ).
- Die JDBC-ODBC-Brücke funktioniert nicht ordnungsgemäß mit dem Access ODBC-Treiber, wenn der Text Unicode-Zeichen mit Codepunkten über U + 00FF enthält (siehe hier ), sodass ein solches Setup keine Zeichen wie Griechisch, Russisch oder Chinesisch verarbeiten kann , Arabisch usw.,
- Der Access ODBC-Treiber von Microsoft funktioniert nur unter Windows und
- Es gibt separate 32-Bit- und 64-Bit-Versionen des Access Database Engine (und des ODBC-Treibers), die die Bereitstellung stören können.
Ich habe andere Antworten gesehen, in denen ein JDBC-Treiber für Access-Datenbanken mit dem Namen UCanAccess erwähnt wurde . Wie kann ich mein Java-Projekt für diesen Ansatz einrichten?
(Antworten, die bessere Möglichkeiten für die Arbeit mit Access-Datenbanken von Java aus vorschlagen, wären ebenfalls sehr willkommen.)
java
ms-access
ucanaccess
Gord Thompson
quelle
quelle
Antworten:
UCanAccess ist ein reiner Java-JDBC-Treiber, mit dem wir ohne Verwendung von ODBC aus Access-Datenbanken lesen und in diese schreiben können. Es verwendet zwei weitere Pakete, Jackcess und HSQLDB , um diese Aufgaben auszuführen. Im Folgenden finden Sie eine kurze Übersicht über die Einrichtung.
Option 1: Verwenden von Maven
Wenn Ihr Projekt Maven verwendet , können Sie UCanAccess einfach über die folgenden Koordinaten einschließen:
groupId: net.sf.ucanaccess
artefaktId: ucanaccess
Das Folgende ist ein Auszug aus
pom.xml
, möglicherweise müssen Sie das aktualisieren<version>
, um die neueste Version zu erhalten:Option 2: Manuelles Hinzufügen der JARs zu Ihrem Projekt
Wie oben erwähnt, benötigt UCanAccess Jackcess und HSQLDB. Jackcess wiederum hat seine eigenen Abhängigkeiten . Um UCanAccess verwenden zu können, müssen Sie die folgenden Komponenten einschließen:
UCanAccess (ucanaccess-xxxjar)
HSQLDB (hsqldb.jar, Version 2.2.5 oder neuer)
Jackcess (jackcess-2.xxjar)
commons-lang (commons-lang-2.6.jar oder neuere 2.x-Version )
commons-logging ( commons-logging-1.1.1.jar oder neuere 1.x-Version )
Glücklicherweise enthält UCanAccess alle erforderlichen JAR-Dateien in seiner Verteilungsdatei. Wenn Sie es entpacken, sehen Sie so etwas wie
Sie müssen lediglich alle fünf (5) JARs zu Ihrem Projekt hinzufügen .
Eclipse: Klicken Sie im Paket-Explorer mit der rechten Maustaste auf das Projekt und wählen Sie
Build Path > Configure Build Path...
. Klicken Sie auf die Schaltfläche "Externe JARs hinzufügen ...", um jede der fünf (5) JARs hinzuzufügen. Wenn Sie fertig sind, sollte Ihr Java Build Path ungefähr so aussehenNetBeans: Erweitern Sie die Baumansicht für Ihr Projekt, klicken Sie mit der rechten Maustaste auf den Ordner "Libraries" und wählen Sie "Add JAR / Folder ...". Navigieren Sie dann zur JAR-Datei.
Nach dem Hinzufügen aller fünf (5) JAR-Dateien sollte der Ordner "Libraries" ungefähr so aussehen:
IntelliJ IDEA: Wählen Sie
File > Project Structure...
aus dem Hauptmenü. Klicken Sie im Bereich "Bibliotheken" auf die+
Schaltfläche "Hinzufügen" ( ) und fügen Sie die fünf (5) JAR-Dateien hinzu. Sobald dies erledigt ist, sollte das Projekt ungefähr so aussehen:Das ist es!
Jetzt kann "U Can Access" Daten in .accdb- und .mdb-Dateien mit Code wie diesem verwenden
Offenlegung
Zum Zeitpunkt des Schreibens dieser Fragen und Antworten war ich weder an dem UCanAccess-Projekt beteiligt noch mit ihm verbunden. Ich habe es gerade benutzt. Ich habe seitdem einen Beitrag zum Projekt geleistet.
quelle
net.ucanaccess.jdbc.UcanaccessDriver