Anbindung einer Datenbank an Java

Hi,

ich wollte mich hier mal nach etwas Hilfe umsehen da ich leider vor einem Wald stehe, diesen jedoch nicht zu sehen scheine.

http://www.java-forum.org/datenbank...-db-anbindung-zuweisung-fehlgeschlagen-2.html

Hier wurde schon ein ähnlicher Fehler wie der meine verarbeitet, jedoch konnte ich dort keine für mich nützlichen Dinge in Erfahrung bringen, oder keine, die wie ich denke auf meinen speziellen Fall passen (ja, ich möchte ein Unikum sein).

Daher mal mein Problem: Ich versuche seit geraumer Zeit Zugriff auf eine Datenbank via Java zu bekommen, ziel ist es dort Werte zur weiteren Verarbeitung auszulesen (welch Überraschung).
Leider klappt das mit der eigentlichen Datenbank noch nicht so und ich dachte mir, fang ich klein an.

Habe also eine Access DB auf meinem Lokalen Rechner erstellt und gespeichert, aber wenn ich Versuche drauf zuzugreifen passiert folgendes:

Der Quellcode:

Java:
public class main {

	/**
	 * @param args
	 * @throws ClassNotFoundException 
	 * @throws SQLException 
	 */
	public static void main(String[] args) throws ClassNotFoundException, SQLException {

		*ENTFERNTE VARIABLENDEKLARATION*		
		
		for (Enumeration<Driver> e = DriverManager.getDrivers(); e.hasMoreElements(); )
			System.out.println(e.nextElement().getClass().getName());

		try {
		Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
		
		//Connection cn = DriverManager.getConnection("jdbc:odbc:" + sDsn, dbUsr, dbPwd);
		
		//fuer lokal gespeicherte access datenbank ???!
		Connection cn = DriverManager.getConnection("jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)}; DBQ = PFAD\\DBVersuche\\datenbank1.mdb");
		
		cn.close();
		
		} catch (java.lang.Exception e) {
			
			e.printStackTrace();
			
		}
	}

}

Der Ausgegeben Fehler lautet:

sun.jdbc.odbc.JdbcOdbcDriver
java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] Kein zulässiger Dateiname.
at sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcConnection.initialize(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcDriver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at main.main(main.java:38)

(PS: Die erste Zeile ist die Ausgabe der for, also meine DB Driver wenn ich das richtig Verstanden habe)

Ich weiß mittlerweile nicht mehr woran es liegt oder liegen könnte und hoffe daher, hier kompetente Hilfe zu finden.

mkg benni


PS.: Ich weiß auch was ein String ist :toll:
 
Hi,

nach so kurzer Zeit nun doch schon wieder ich und ich habe vllt. einen Lösungsansatz gefunden.

Ich habe beim weiteren googlen, man will ja nicht untätig rumsitzen, ein Tutorial gefunden.

Dieses hier: Open Tutorial: How to Use JDBC, ODBC with MS Access

Den Schritt 1 habe ich nie ausgeführt, das müsste ich dann entsprechend Versuchen, falls jemand das ganze Nachvollziehen möchte finde ich hier gut erklärt wie es geht:

SQL-Grundlagen

Die Frage ist nun, kann das mein Problem lösen oder bin ich auf dem völlig falschen Dampfer.

Dummerweise kann ich das nicht gleich versuchen, da ich im Praktikum bin und hier auf den PCs keine Adminrechte habe, der Antrag kann etwas dauern.

Sollte ich auf dem richtigen Weg sein bitte ich um Antwort, sollte ich auf dem Holzpfad sein, bitte ich auch um Antwort.

mkg benni
 

maestr0

Bekanntes Mitglied
Hey sabbergesicht,

ich denke nicht,dass du um die Einrichtung von ODBC und DSN herum kommst.
In dem Link, den du gepostet hast ist von DNS die Rede.das ist schon mal falsch, da DNS ein Dienst ist,der Hostnamen in IP-Adressen umwandelt.

Richtig ist DSN!!und hier steht auch,dass eine Einrichtung nötig ist SQL mit Java

Wie du das dann machst,steht hier SQL-Grundlagen

Hoffe ich konnte dir damit helfen.

Edit:sry den zweiten Link hast du ja schon gefunden:)hab ich übersehen :)
 

Guybrush Threepwood

Top Contributor
Ich habe noch nie von Java auf Access-DBs zugegriffen, aber ich nehme schwer an, Du brauchst eine passende Bibliothek, die Du dem Classpath hinzufügen musst. Schließlich wird kein JdbcOdbcDriver gefunden (Stacktrace). Google doch mal ODBC-JDBC-Bridge
Im Forum gibt es auch Einträge dazu.
 
hoi,

so erstmal danke für eure Lösungsansätze.

Zu den Sachen von dir maestr0, dass ich nich drum herum komme das einzurichten konnte ich mir schon denken, genau so etwas hatte ich befürchtet.
Deine beiden Links helfen mir leider nicht viel weiter, die dort angegebenen Lösungen hatte ich bereits versucht umzusetzen bin damit aber jedesmal von einer Fehlermeldung in die nächste gerannt ... äußerst demotivierend.

Auch dir vielen Dank Guybrush Threepwood, soweit ich Lösungen oder Lösungsansätze dazu fand, müsste wohl alles korrekt sein, da mir der Treiber für jdbc:eek:dbc als installiert ausgegeben wird. Was hier fehlt, ist wohl wirklich die Einbindung bei Systemsteuerung -> Datenquellen -> System-DSN

So, nun zum eigentlichen Inhalt des Posts:

Ich hatte eben eine Art Erleuchtung gehabt, wenn ich die Server Addresse, die ich ja habe mit tnsping anpinge, bekomme ich ja den offenen Port und alle wichtigen Informationen -> ich kann den oracleDriver verwenden, so wie ich es im Studium gelernt habe. Muss ich das Ding also nur noch finden (ich möchte mich ungern bei Oracle registrieren) und einbinden.
Dann kann ich, wie zuerst gewünscht, auf ODBC verzichten, da dies ja suboptimal sein soll (habe ich so mehrfach gelesen, keine garantie für Richtigkeit dieser Behauptung).

Eine andere Frage ist, ob die genutzte Anbindung überhaupt eine Rolle spielt, es ja die Möglichkeiten Oracle, MySQL, ODBC und und und zu verwenden, macht das einen Unterschied, bzw gibt es Einschränkungen? Ich vermute und hoffe die Antwort lautet nein.

Wenn ich weiter komme melde ich mich nochmal (wenn nicht melde ich mich auch nochmal), vllt hilft das ja dem ein oder anderen der bei google nach einer Lösung für das gleiche Problem sucht.
 
S

Spacerat

Gast
SQL-Datenbankanbindungen sind in der Regel relativ identisch, was die Querys und Results angeht. Willst du also ein komplett neues Projekt aufsetzen bist du nicht wirklich an eine spezielle DB gebunden.
Erst wenn du vorhandene DBs mit Java bearbeiten bzw. benutzen willst, benötigst du die notwendigen Treiber. Für MS-Access gibt es nunmal (afaik) keinen JDBC-Treiber wie z.B. für MySQL. Hier ist man auf die JDBC-ODBC-Bridge und einen kompatiblen ODBC-Treiber für MS-Access angewiesen. Wenn du die JDBC-Bridge erst einmal installiert hast, kannst du sie gleich mal testen und zwar mit einem möglicherweise bereits vorhandenem MySQL-ODBC-Treiber. Dieser funktioniert genauso wie der MySQL-JDBC-Treiber. Wenn du so Zugriff auf eine MySQL-Datenbank bekommst, weisst du, dass die Brücke funktioniert und musst dir nur noch einen passenden ODBC-Treiber für Access besorgen.
 
ES LEBT

so, nochmal vielen herzlichen Dank für die Antworten und die Hilfe.

Also mit meinem kleinen Ausflug in Richtung Access scheine ich mehr Verwirrung gestiftet zu haben als alles andere, Access wäre eine notlösung gewesen, da wir die SQL DB zwar in Access Exportieren konnten, ich aber nicht mit Java drauf zugreifen konnte.

Erklärung des Problems und der Lösung:

Java:
Class.forName("oracle.jdbc.OracleDriver");
			
			Connection cn = DriverManager.getConnection("jdbc:oracle:thin:@host:port:name; dbUsr, dbPwd);


für die Erstellung der Verbindung war ja der Pfad, der freie Port und der Name der Datenbank nötig, alles was ich hatte war ein Pfad in unserem Intranet (den hatte ich aus einem Funktionsfähigen Makro).

Gelöst habe ich das ganze, indem ich den Pfad aus dem Makro via tnsping in der cmd anpingte, dabei wurden einem dann der Port, der Name und der genaue Host (der im übrigen anders lautete als die angepingte Addresse) genannt, also das was ich für die Erstellung der Verbindung benötige.

Was den fehlenden Oracle Treiber angeht, konnte mir ein Kollege helfen der diesen bereits auf seinem PC hatte, einfach irgendwo aufm PC gespeichert und dann mit Eclipse eingebunden.

Hoffe das hilft vllt. dem ein oder anderm Suchenden weiter, wenn mal wer das gleiche Problem hat.

Sollte ich nochmal Probleme mit Java haben und die wird es bestimmt geben, werde ich wieder hier im Forum vorbeischauen.

Also bis die Tage und mkg

Benni

PS.: Da das thema von meiner Seite her abgeschlossen ist, kann der Thread nun gern geschlossen werden.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Dragonfire Entwurfsfragen zur Anbindung an einer MySQL DB - Klassenstruktur zum Data Model Datenbankprogrammierung 5
M MySQL Anbindung und Abfrage an die Datenbank Datenbankprogrammierung 2
S Anbindung zur mysql von mit Swing und AWT Datenbankprogrammierung 22
H Datenbank-Anbindung Java/MySQL Datenbankprogrammierung 2
B DB Anbindung über Tomcat Datenbankprogrammierung 16
F Oracle Oracle JDBC Anbindung unter Glassfish 3.1.2 Datenbankprogrammierung 3
D DB-Anbindung Zuweisung fehlgeschlagen Datenbankprogrammierung 37
H MySQL Programm mit Datenbank anbindung Datenbankprogrammierung 26
T Anbindung von Hibernate an JSP Datenbankprogrammierung 6
Z Anbindung von Datenbank an Java Datenbankprogrammierung 2
P DB-Anbindung Datenbankprogrammierung 13
P MySQL-Anbindung Datenbankprogrammierung 4
A MySQL Anbindung - Exception Handling Datenbankprogrammierung 2
F MYSQL Anbindung Datenbankprogrammierung 14
R oracle Anbindung geht im jar nicht Datenbankprogrammierung 8
A Problem mit der Anbindung zur hsqldb Datenbankprogrammierung 18
G anbindung an sqlserver unter windows Datenbankprogrammierung 7
G Anbindung zu JDBC Datenbankprogrammierung 6
K MySQL Anbindung Datenbankprogrammierung 2
B Wie kann ich eine Jtable mit Inhalt einer SQL Abfrage füllen Datenbankprogrammierung 14
D Zweckmäßigkeit einer Schlüsseltabelle Datenbankprogrammierung 4
TH260199 Java-Programm. Probleme bei der Umsetzung von einer Kontaktverwaltung. Datenbankprogrammierung 7
S Variable in main soll mit der generierten Zahl aus einer Methode ausgefüllt werden Datenbankprogrammierung 3
N Oracle SQL - Nächst kleineren Namen2 zu einem Namen aus einer Tabelle Datenbankprogrammierung 3
T Datenbank auf einer Webseite aus einer Exceltabelle erstellen Datenbankprogrammierung 5
D JPA gleiche methode funktioniert an einer Stelle, an der anderen nicht Datenbankprogrammierung 3
nonickatall MySQL Auf neue Datensätze in einer Datenbank reagieren Datenbankprogrammierung 5
B Wie kopieren ich eine Spalte von einer Tabelle in eine andere Tabelle SQLite durch java code? Datenbankprogrammierung 26
P Verbindung zu einer Access Datenbank per Eclipse oder Intellij Datenbankprogrammierung 0
pkm Frage zu Encodingproblem bei einer Datenbankanbindung Datenbankprogrammierung 1
B Frage bei einer SQL Query Datenbankprogrammierung 3
F Mapping einer SQL Abfrage in eine Klasse Datenbankprogrammierung 4
J In einer bestimmten Spalte suchen mit Suchfeld (MS SQL) Datenbankprogrammierung 7
S Verbindung von einer Excel Datei zu Java Datenbankprogrammierung 2
J Sql Anfrage nach einer Zeile beenden Datenbankprogrammierung 6
J Welche Kriterien haben Einfluss auf die Geschwindigkeit einer Datenbank ? Datenbankprogrammierung 4
S Anmelden an einer msql datennbank Datenbankprogrammierung 1
F Auslesen einer .dbf-Datei, Zuordnung Index Datenbankprogrammierung 0
ralfb1105 Oracle Zwei ojdbc Driver in einer Applikation? Datenbankprogrammierung 13
Dimax MySQL Maximale Datenlänge für eine Spalte einer Datenbank in java ermitteln Datenbankprogrammierung 15
Dimax MySQL 10 höchsten Werte aus einer Tabelle ermitteln Datenbankprogrammierung 30
L Speicherverbrauch Java Anwendung mit einer Datenbankanbindung Datenbankprogrammierung 19
temi Wie kann ich "Class" in einer DB speichern? Datenbankprogrammierung 2
F UPDATE - Befehl nur in einer Zeile Datenbankprogrammierung 11
I Oracle Wie ermitteln, welche Benutzer-(!)Tabellen in einer DB sind? Datenbankprogrammierung 1
DaCrazyJavaExpert Derby/JavaDB Wert einer Variable in der Datenbank direkt auf 1 setzten. Datenbankprogrammierung 71
D MySQL Suche nach Max Value in einer Tabelle Datenbankprogrammierung 7
W Daten aus einer Datei von einem VServer auslesen Datenbankprogrammierung 1
F MySQL Wie kann ich in Java Datensätze aus einer MySQL Datenbank gezielt in einzelne Arrays schreiben? Datenbankprogrammierung 9
F Java Objekte in einer Datenbank speichern Datenbankprogrammierung 4
MrSnake Hilfe bei erstellen einer DB Datenbankprogrammierung 12
M Wie übergebe ich Datenbankobjekte aus einer sql-Datenbank einer Java Klasse bzw. Instanz Datenbankprogrammierung 7
Z Finde den Fehler: Daten aus einer Access-Datenbank lesen Datenbankprogrammierung 12
D Aktualisierung einer ListView mit Daten aus MySQL-DB Datenbankprogrammierung 5
E Wie kann man mit einer ID-Spalte über eine Parameterübergabe auf eine Seite verweisen? Datenbankprogrammierung 17
E Warum funktioniert das Erzeugen einer View nicht? Datenbankprogrammierung 1
E Kann man in einer if-Bedingung auch SELECT-Statements überprüfen? Datenbankprogrammierung 23
E Was sind die Vorteile von DB2 im Gegensatz zu einer Oracle-Datenbank? Datenbankprogrammierung 5
E Wie geschieht der konzeptueller Entwurf einer Datenbank Datenbankprogrammierung 1
I SQLite Objekt speichern einer Serialisierter Klasse Datenbankprogrammierung 1
D HSQLDB INSERT INTO in einer For Schleife mit selber ID, machbar? Alternative? Datenbankprogrammierung 7
I Inhalt einer hsqldb anzeigen Datenbankprogrammierung 1
J Realisierung einer DB in Combi mit Java Datenbankprogrammierung 13
Androbin [Serializing] Mehrere Objekte in einer einzigen Datei speichern Datenbankprogrammierung 1
S Auswahl einer Datenbank Datenbankprogrammierung 0
M Derby/JavaDB Speicherplatz einer Zeile bestimmen Datenbankprogrammierung 0
P JPA in einer größeren Java SE Anwendung Datenbankprogrammierung 0
R MySQL Blob aus DB auslesen und einer Tabelle ausgeben Datenbankprogrammierung 7
C H2 Syntax fehler beim erstellen einer Tabelle Datenbankprogrammierung 4
L MySQL Uhrzeit-Format innerhalb einer Tabelle Datenbankprogrammierung 8
2 MySQL Daten aus einer Array auslesen und MySQL Statment erstellen. Datenbankprogrammierung 5
S Derby/JavaDB Probleme beim anlegen einer embedded DB Datenbankprogrammierung 13
E Daten einer SQL-Datenbank aus Combobox in labels schreiben Datenbankprogrammierung 6
M Problem beim Erstellen einer Query Datenbankprogrammierung 7
L Datenbankabfrage mit einer Range Datenbankprogrammierung 3
H ResultSet is closed tritt bei JSF aber nicht bei einer Java-Applikation auf Datenbankprogrammierung 10
eskimo328 Datenbankverbindung ohne Passwort im Quelltext bei einer offline Anwendung Datenbankprogrammierung 14
C unverständliches DB Problem (Es ist kein temporärer Systemtabellenbereich mit einer ausreichenden..) Datenbankprogrammierung 5
A Oracle Update Befehl in Datenbank anhand einer Schleife Datenbankprogrammierung 8
Kenan89 Oracle Daten einer Tabelle in Array speichern Oracle Datenbankprogrammierung 10
S 2 Tabellen zu einer zusammenführen, INSERT INTO Fehler Datenbankprogrammierung 5
D Sperrverfahren in einer Datenbank Datenbankprogrammierung 6
B Feld in einer @Entity als Text speichern Datenbankprogrammierung 5
G Oracle Hibernate M:N-Beziehung mit nur einer vorhandenen Tabelle Datenbankprogrammierung 5
M MySQL Auto-Increment einer custom formatted id? Datenbankprogrammierung 2
F Oracle ResultSet zu einer HashMap<Integer, String[]> Datenbankprogrammierung 6
M DB: Mehrere Zeilen in einer Zeile zusammenführen Datenbankprogrammierung 10
D Probleme bei der Erzeugung einer Tabelle Datenbankprogrammierung 15
D Frage zu potenziellen Leerzeichen in einer Datenbank Datenbankprogrammierung 5
H datantyp einer variable ermittel mit sql Datenbankprogrammierung 3
I Zugriff auf Datenbank nach Erstellen einer Executable Jar Datei verweigert Datenbankprogrammierung 10
S Problem beim Anlegen einer Tabelle Datenbankprogrammierung 5
S Wie überprüfe ich ob die Instanz einer Connection gerade werwendet wird? Datenbankprogrammierung 4
M Ausgabe der Rows mit höchstem Wert X einer Gruppe y,z ? Datenbankprogrammierung 2
L Derby/JavaDB Fehler beim Erstellen einer Tabelle Datenbankprogrammierung 2
turmaline [Hibernate] @OneToOne: Löschen einer referenzierten Instanz Datenbankprogrammierung 2
S ResultSet einer Datenbankabfrage - Nullpointer Exception Datenbankprogrammierung 13
B Aktuellen Stand der Datensätze einer Datenbank anzeigen Datenbankprogrammierung 9
B Die Anzahl der Datensaetze einer Datenbank anzeigen Datenbankprogrammierung 2
T Ablage von Benutzereinstellungen in einer DB Datenbankprogrammierung 7

Ähnliche Java Themen

Neue Themen


Oben