Zugriff auf MS Access-Datenbank mit jackcess

fry@linux

Mitglied
Hallo,
ich suche nach Code-Beispielen um mit jackcess auf eine MDB-Datei zugreifen zu können.
Kann mir jemand helfen?
In der MDB-Datei sind bereits mehrere Tabellen vorhanden, diese möchte ich gerne auslesen und auch Werte in diese Tabellen schreiben.
Ich muss jackcess nutzen, da ich das Programm auch unter Linux nutzen möchte.
 

fry@linux

Mitglied
Hi,
das hatte ich auch gefunden aber irgendwie werde ich daraus nicht schlau. Eine komplettes Beispiel wäre super.

Java:
import java.io.File;
import java.io.IOException;

import com.healthmarketscience.jackcess.Database;
  
public class Test{

	public static void main(String[] args){
		try {
			System.out.println(Database.open(new File("test.mdb")).getTable("Tabelle").display());
		}
		catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
    }
}

dann bekomme ich diesen Fehler:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
at com.healthmarketscience.jackcess.Database.<clinit>(Database.java:89)
at Test.main(Test.java:10)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
... 2 more
 
Zuletzt bearbeitet:

fry@linux

Mitglied
Danke für den Tipp.
Habe jetzt noch das hinzugefügt:
import org.junit.*;
import junit.extensions.*;
import junit.framework.*;
import junit.runner.*;
import junit.textui.*;

nun bekomme ich nur noch diese Fehler:
java.io.IOException: jet format 'VERSION_3' does not support writing
at com.healthmarketscience.jackcess.Database.open(Database.java:493)
at com.healthmarketscience.jackcess.Database.open(Database.java:444)
at com.healthmarketscience.jackcess.Database.open(Database.java:420)
at com.healthmarketscience.jackcess.Database.open(Database.java:399)
at com.healthmarketscience.jackcess.Database.open(Database.java:379)
at Test.main(Test.java:15)
 

fry@linux

Mitglied
Hi, habe den Fehler gefunden! :toll:

Bei meiner mdb-Datei handelt es sich wohl um eine MS Access 97 - Datenbank!
Nun ist es aber so, dass Jackcess ab Version 1.2.1 diese Dateien unterstützt.

Die Fehlermeldung hat mich dann auf die Idee gebracht. Man muss die mdb explizit "readonly" öffnen.
Da soll einer mal drauf kommen! Man beachte
Code:
, true
gibt readonly an. :lol:

Java:
import java.io.File;
import java.io.IOException;
import com.healthmarketscience.jackcess.Database;
  
public class Test{
 
    public static void main(String[] args) {
    	
    	Object[] DB_table;
		try {
			DB_table = Database.open(new File("01.mdb"), true).getTableNames().toArray();
			for(int i = 0; i<DB_table.length;i++){
				System.out.println(DB_table[i]);
			}
		} catch (IOException e) {
			e.printStackTrace();
		}
    }
}

Das Beispiel zeigt alle Tabellen in der Datenbank an. Am besten man legt noch eine Textdatei "log4j.properties" an und schreibt dort
Code:
log4j.rootLogger=OFF
rein, dann gibts keine Meldungen in der Konsole!

PS: Falls jemand weiß, wie man Jackcess doch überreden kann in eine Access97 - Datenbank zu schreiben wäre ich noch glücklicher!
 

erdmulch

Bekanntes Mitglied
Hallo,

hast du schon eine Lösung für dein Datenbank-Problem unter Linux?
ich hab eine Access2003 Datenbank und will mit Eclipse unter einer Linux Umgebung die Daten auslesen
ich habe bereits jackcess1.2.6.jar nach dieser Anleitung eingebunden:
Startup für PostgreSQL + JDBC + Eclipse
ich denke dass es prinzipiell gleich wie bei Postgresql gehen muss!
was mach ich falsch?

Java:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;


public class MSAccess {

    private final String ODBC_Name = "AccessDB";
    private Connection con;
    private String url;


      public Connection connect()

      {

        try{

            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            System.out.println("Bruecke erfolgreich aufgebaut");
        }catch (ClassNotFoundException e)

        {

            System.out.println("Fehler bei Bruecke");
           JOptionPane.showMessageDialog(null,"Kein Access-Odbc-Treiber gefunden");
        }

        try{
            //url = "jdbc:odbc:" + ODBC_Name;
        	url = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};" + "DBQ=database/bibliothek/buecher.mdb";
            con = DriverManager.getConnection(url);
            System.out.println("Datenbankverbindung erfolgreich");
        }catch(SQLException s){
           System.out.println("DB-Verbindungsfehler:" + s);
           JOptionPane.showMessageDialog(null,"Datenbankverbindungsfehler");
        }

        

        /*

         *  Alternative Pfadangabe �ber den Direktzugriff

         *  con = DriverManager.getConnection("jdbc:odbc:Driver={MicroSoft Access Driver (*.mdb)};DBQ=c:\Server.mdb");

         */
        return con;

      }



      public void close(){

        try {

            con.close();

            System.out.println("Verbindung getrennt");

        } catch (SQLException ex) {

            System.out.println("Fehler beim schlie�en der Verbindung" + ex);

            JOptionPane.showMessageDialog(null, "Probleme beim schlie�en der Verbindung!");
            Logger.getLogger(MSAccess.class.getName()).log(Level.SEVERE, null, ex);

        }

      }

      public static void main(String[] args){
          MSAccess accessDb = new MSAccess();
          accessDb.connect();
          accessDb.close();

      }
}
 
Zuletzt bearbeitet:

erdmulch

Bekanntes Mitglied
ganz einfach.
weil ich aus meinem Outlook die Adressdaten in ein Access file exportieren kann.
bzw. gibt es eine Möglichkeit eine csv Datei genauso komfortabel auszulesen?
wenn ja wie?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S HSQLDB Zugriff auf Access Datenbank Datenbankprogrammierung 0
T Problem bei Zugriff auf Access Datenbank Datenbankprogrammierung 7
M Zugriff auf eine Access-Datenbank innerhalb eines jar-Files Datenbankprogrammierung 7
J Zugriff auf Access-Datenbank Datenbankprogrammierung 3
K Zugriff auf Access-Datenbank Datenbankprogrammierung 4
N Wie kann ich Zugriff auf eine MS Access DB (mit JDBC) über Netzwerk erreichen? Datenbankprogrammierung 7
F Zugriff auf MS Access DB Datenbankprogrammierung 3
J Java DB Zugriff auf Access (Migration auf andere DB) Datenbankprogrammierung 8
S Zugriff auf eine große Datenmenge von MS Access per JDBC Datenbankprogrammierung 11
T Zugriff auf MS-Access-DB ist grottenlangsam. Normal? Datenbankprogrammierung 9
G Access Zugriff, DB auf Server, Applet Datenbankprogrammierung 4
C Zugriff auf MS Access Datenbankprogrammierung 4
Beginner22 Zugriff auf Datenbank aus Java über mariadb Datenbankprogrammierung 3
H MariaDB-Zugriff mittels Java SE Datenbankprogrammierung 3
X MySQL Java hat keinen Zugriff auf MySQL Datenbankprogrammierung 9
M Datenbank vor unerlaubtem Zugriff durch Benutzer schützen Datenbankprogrammierung 3
L Zugriff auf ein Resultset Datenbankprogrammierung 7
R jdbc-Zugriff Nicht erlaubt ? Datenbankprogrammierung 16
K Eclipse: JBoss Hibernate Tool: Kein Zugriff auf Datenbank Datenbankprogrammierung 5
D Gleichzeitiger Zugriff auf der DB Datenbankprogrammierung 11
J mySQL- Java Application - Zugriff über Internet Datenbankprogrammierung 3
D JavaFX Anwendung zugriff auf MySQL DB. Datenbankprogrammierung 2
F Zugriff auf ein bestimmte Row Datenbankprogrammierung 13
K MySQL Datenbank 2facher Zugriff Datenbankprogrammierung 1
M DB-Zugriff funktioniert nach JAR-Erstellung nicht mehr Datenbankprogrammierung 3
P Datenbank Zugriff fehlgeschlagen Datenbankprogrammierung 9
B MySQL JDBC Zugriff auf entfernt Datenbank, fehlende Rechte Datenbankprogrammierung 2
L Zugriff auf lokal gespeicherte mySQL Datenbank Datenbankprogrammierung 3
L MySQL App/Java Zugriff auf Mysql-DB funktioniert nicht Datenbankprogrammierung 1
W MySQL -Server Einstellung -- Zugriff übers lokale Netzwerk Datenbankprogrammierung 1
R Oracle jdbc Zugriff auf Oracle Datenbankprogrammierung 2
T Derby/JavaDB Zugriff auf DB mit exportiertem Programm Datenbankprogrammierung 12
A MySQL-Zugriff auf Raspberry Pi Datenbankprogrammierung 2
T PostgreSQL Best Practice: Konkurrierender DB-Zugriff mit meherern Programmen? Datenbankprogrammierung 20
D .mdb Datenbank Zugriff fehlgeschlagen Datenbankprogrammierung 5
B Datenbanken schützen vor Zugriff Datenbankprogrammierung 3
E Zugriff auf MySQL-Datenbank Datenbankprogrammierung 4
K MySQL Zugriff auf Remote-DB verweigert Datenbankprogrammierung 6
G MySQL Zugriff auf Datenbank Objekt Datenbankprogrammierung 19
C Hibernate n:m mittels Zwischentabelle und bidirektionaler Zugriff Datenbankprogrammierung 2
M Zugriff auf mdb via ODBC steuern Datenbankprogrammierung 2
A Zugriff auf DB-Tabellen mit Objekten Datenbankprogrammierung 3
D Was passiert bei absolut zeitgleichem Zugriff auf eine Tablerow Datenbankprogrammierung 7
I Zugriff auf Datenbank nach Erstellen einer Executable Jar Datei verweigert Datenbankprogrammierung 10
I Zugriff auf eine Datenbank auf dem Webserver Datenbankprogrammierung 2
J Derby/JavaDB Zugriff ohne Entwicklungsumgebung Datenbankprogrammierung 5
E H2 - Globalen Zugriff auf die Datenbank? Datenbankprogrammierung 10
J Zugriff auf MySQL-Datenbank Datenbankprogrammierung 5
F suche Erstanschub für DB-Zugriff Datenbankprogrammierung 9
E einfache Frage bei DB-Zugriff Datenbankprogrammierung 11
P MySQL Remote Zugriff Datenbankprogrammierung 2
C Gleichzeitiger Zugriff auf Datensatz Datenbankprogrammierung 5
T MySQL Zugriff ohne Angabe der Datenbank Datenbankprogrammierung 3
J Frage zu Synchronisation bei parallelem Zugriff, speziell mit JPA Datenbankprogrammierung 2
T DB Zugriff mit Java Web Datenbankprogrammierung 6
R Zugriff auf SQL im PreparedStatement Datenbankprogrammierung 4
J Nullpointer Exception bei Zugriff auf Datenbank Datenbankprogrammierung 13
A Zugriff auf Remote MySQL-DB mit JAR-File Datenbankprogrammierung 7
R Java DB Zugriff Datenbankprogrammierung 2
T Zugriff auf Derby-Datenbank will einfach nicht klappen Datenbankprogrammierung 22
G Zugriff auf Datenbank im Internet Datenbankprogrammierung 6
G treiber für datenbank zugriff Datenbankprogrammierung 3
L Datenbank URL Zugriff Datenbankprogrammierung 9
G Wie baut man eine Anwendung mit DB Zugriff Datenbankprogrammierung 3
QDog JPA persistence.xml auslagern/extern Zugriff Datenbankprogrammierung 2
A HSQLDB Performance bei erstem Zugriff Datenbankprogrammierung 6
S Datenbank zugriff optimieren - zugriff ohne cursor? Datenbankprogrammierung 7
A Zugriff auf DB-Pool, der von Servlet initialisiert wurde Datenbankprogrammierung 4
J MYSQL-Zugriff mittels einer Java-Bean Datenbankprogrammierung 42
M mySQL zugriff funktionert nach ca4 stündiger laufzeit nicht Datenbankprogrammierung 6
J Zugriff mit DataSource Datenbankprogrammierung 7
M Zugriff für andere sperren Datenbankprogrammierung 11
K Zugriff mittels JDBC funktioniert nur lokal Datenbankprogrammierung 5
G Hibernate Zugriff Datenbankprogrammierung 5
E JDBC Oracle Fehler, zugriff auf datenbank (Cluster) Datenbankprogrammierung 5
D ODBC Zugriff auf MDB-Datenbank, Insert Into ohne Funktion Datenbankprogrammierung 2
G Verwendung neuen Treiber für JDBC-Zugriff auf OracleDB Datenbankprogrammierung 5
D Problem beim Zugriff auf eine Oracle-DB Datenbankprogrammierung 23
D Kann nicht auf MySQL Datenbank Zugriff Datenbankprogrammierung 9
G Policy Eintrag für SQL Zugriff im Netzwerk Datenbankprogrammierung 10
S Java SQL-Exception bei Zugriff auf MSAccess Datenbankprogrammierung 2
S JDBC Zugriff auf SQLServer Datenbankprogrammierung 9
D Datenbank zugriff über Client/Server Datenbankprogrammierung 4
M Zugriff auf PostgreSQL mit JAva! Datenbankprogrammierung 7
F Zugriff auf ODBC-Datenbank übers Netzwerk Datenbankprogrammierung 6
G Problem beim Zugriff SQL 2000 Datenbankprogrammierung 2
T Verwaltungsystem mit grafischer Oberfläche mit Zugriff auf. Datenbankprogrammierung 6
D Zugriff auf Paradox-Datenbank Datenbankprogrammierung 10
B ResultSet aus Session geladen, aber kein Zugriff möglich Datenbankprogrammierung 6
D HSQLDB Datenbank Zugriff! Datenbankprogrammierung 4
L Programm-Architektur bei DB-Zugriff Datenbankprogrammierung 6
R Zugriff auf MySQL-Datenbank im Internet Datenbankprogrammierung 13
L Zugriff von Applet auf mysql-DB Datenbankprogrammierung 2
R Datenbank zugriff funktioniert nur offline Datenbankprogrammierung 2
G Fehlermeldung beim Zugriff auf SQL-Server-DB Datenbankprogrammierung 3
D Mysql zugriff aus java nicht moeglich Datenbankprogrammierung 2
Tom#234 Jakarta Web Service SQL Access Error Datenbankprogrammierung 7
H Datenbankverbindung zu MS Access Datenbankprogrammierung 4
G Connect zu ACCESS-DB mit Ucanaccess Datenbankprogrammierung 11
P Verbindung zu einer Access Datenbank per Eclipse oder Intellij Datenbankprogrammierung 0

Ähnliche Java Themen

Neue Themen


Oben