ich habe versucht den Datenbanktreiber von Acces 2007 in Java zu laden, es kam jedoch eine Fehlermeldung.
Dann habe ich versucht den MySQL/J-Connector Driver zu laden, doch auch da kam die selbe Fehlermeldung.
public class DatenbankZugriff {
public static void main(String[] args) {
try {
//Treiber laden
Class.forName("com.mysql.jdbc.Driver").newInstance();
} catch(Exception e) {
e.printStackTrace();
}
}
}```
Fehlermeldung:
> java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
> at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
> at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
> at java.security.AccessController.doPrivileged(Native Method)
> at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
> at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
> at java.lang.Class.forName0(Native Method)
> at java.lang.Class.forName(Class.java:259)
> at datenbankzugriff.DatenbankZugriff.main(DatenbankZugriff.java:22)
Was habe ich flasch gemacht?
Danke schonmla im Voraus
Gibt es denn eine Möglichkeit, Verbindung zu einer Datenbank (Access 2007 oder MySQL) herzustellen, ohne den Treiber auf jedem Gerät zu installieren? Das man am Ende mit einer .jar-Datei auskommt?
Den Datenbanktreiber musst du nicht installieren. Du kannst den Treiber (die JAR-Datei) zu deiner Anwendung hinzufügen (Build Path), wenn du sie als executable JAR erstellst. Dann ist der Treiber Teil deiner Anwendung und wird mit dieser auch weitergegeben.
Ich habe jetzt in NetBeans den Treiber zum Classpath hinzugefügt, und trotzdem tritt die selbe Fehlermeldung weiterhin auf…
Edit:
Habe jetzt die .jar-Datei in NetBeans direkt zu meinem Projekt dem Ordner Libraries hinzugefügt und zack - der Treiber kann geladen werden!
Aber wo bekomme ich den Treiber für Access 2007 her?
Habe es mit “sun.jdbc.odbc.JdbcOdbcDriver” versucht, aber da kommt wieder die ‘ClassNotFoundException: sun.jdbc.odbc.JdbcOdbcDriver’-Fehlermeldung.
Na ja, “ClassNotFound” heisst ja soviel wie: “Klasse nicht gefunden”. Du wirst halt den Treiber nicht richtig eingebunden haben. Bei Eclipse leg ich mir die benötigten Dateinen (JARs) in ein Verzeichnis z.B. lib in den Projektordner, klicke dann mit rechter Maustaste auf die Treiberdatei und füge sie dem Build Path hinzu. Bei NetBeans wird das wohl ähnlich funktionieren…
@AngryOnion dein Bild kann ich leider nicht angucken, der Firmenproxy lässt mich nicht durch
Deswegen hier mal eine kurze Anleitung:
in Netbeans klickt man mit der rechten Mousetaste auf den Projektnamen -> Properties -> Libraries -> add JAR/Folder bei Compile
Dankeschön, das habe ich jetzt soweit auch hinbekommen, klappt mit dem MySQL-Treiber auch wunderbar
Aber ich werde auf jeden Fall mit einer Access 2007-Datenbank arbeiten müssen (.accdb).
Und jetzt finde ich nicht heraus, wie oder woher ich den Treiber für Acces 2007-Datenbanken herbekomme…
Geholfen hat mir das nicht wirklich.
Ich bin jetzt so weit, dass das mit dem “Standard Ocdb-Jcdb-Treiber” funktionieren soll.
Dafür habe ich aber auch keine extra .jar-Datei, die ich in den Libraries-Ordner stecken kann und ich habe es schon Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”) versucht. Es kommt wieder die ClassNotFoundException.
schau mal ob in den Standard-Libraries von Netbeans was dabei ist, einfach auf “Add Library…” klicken, dort gibt es (zumindest bei mir) die “Java DB Driver”-Library
Einfacher Datenbankzugriff mittels Konsolenprogramm
Grundsätzlich muss als erstes der passende Datenbanktreiber geladen werden. Wir verwenden die JDBC-ODBC-Bridge die bei der JDK mitgeliefert wird.
Der Datenbanktreiber ist eine Klasse. Seine Aufgabe ist es, ein Objekt dieser Klasse zu erzeugen und beim Treibermanager anzumelden. Dies geschieht mittels Class.forName(„sun.jdbc.odbc.JdbcOdbcDriver“);
So dies wollen wir nun in einem kleinen Beispiel einsetzen, bei dem wir danach auch noch gleich die Verbindung zur Datenbank herstellen.
Ein Access-Treiber funktioniert nur auf einem Windows-System. Wenn das Programm auch auf anderen Systemen laufen muss kann man für Access-"DB"s auf Jaccess setzen.
Im Wiki gibt es den Code zur Verbindung zu einer Access-“DB”, bei dem die Registrierung der ODBC-Quellen nicht notwendig ist. Quasi braucht kein Treiber installiert zu werden. Das funktioniert aber nur unter Windows. Access-Verbindung - Variante ohne Registrierung der ODBC Datenquellen
Ich arbeite zur Zeit ausschließlich an Windows-Systemen. Doch trotzdem funktioniert die im Wiki beschriebene Variante ohne Registrierung leider nicht. Ich bekomme für ‘Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);’ eine ClassNotFoundException.
Das Einbinden von Treiber in NetBeans habe ich soweit verstanden, aber wi bekomme ich den geeigneten Treiber für MS Acces 2007 her?
Was ist Jacces? Jaccess finde ich nur im Zusammenhang mit Joomla!.
Kannst du auch mal noch sagen, welches Windows du aktuell benutzt und ob da auch MS Office installiert ist? Außerdem wäre noch die benutzte Java-Version interessant.
Ich habe das selbst mal ausprobiert. Lief auf einem Windows XP mit Java 5 und einem MS Office 2003 problemlos.
Ups, sorry. Der Fehler kam durch einen Tippfehler meinerseits zu Stande. Jackess muss es heißen.
Hier auch noch der Link dorthin: http://jackcess.sourceforge.net/