Classpath Datenbank ... nur wo?

fisch100

Mitglied
Eigentlich ist der Fehler scheinbar simpel aber doch ... ich hab nichts gefunden (Forumsuche, und im Handbuch der Java-Programmierung und paar andere Seiten...)

es geht darum: ich hab meine Klassen alle an einem Ort (wie ungewöhnlich ;) )
und möchte nun eine Datenbank (in meinem Fall ne Access DB - mdb) verwenden ->

nur hab ich das Probelm das ich den Vollständigenpfad(?! oder sogar direkt per Hosting) angebenmuss????

da es aber portable sein muss ... ist das eigentlich dumm ... und ich möchte jz nur wegen dem nicht ins internet stellen ... (wo das problem von nonSQL ist das man nur lesen kann ... soll aber jetzt nicht das Problem sein)

folgenden COde hab ich (jaja der standard code ;) ):

Java:
try
      {
        //laden der Treiberklasse
        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        //zurückgeben der neuen Verbindung
        Connection con = DriverManager.getConnection("jdbc:odbc:Datenbank");
      }
      catch(Exception e)
      {
        System.out.println(e);
      }

Fehler: java.sql.SQLException: [Microsoft][ODBC Driver Manager] Der Datenquellenname wurde nicht gefunden, und es wurde kein Standardtreiber angegeben

Treiber sollte doch passen ... also bleibt nur der Datenpfad .. wie oben schon beschieben ...


vielen dank schon mal =)
 

Michael...

Top Contributor
Ist die Datenbank unter dem Namen "Datenbank" als ODBC Datenquelle im Betriebssystem eingetragen?
Alternativ:
Java:
Connection c = DriverManager.getConnection("jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=c:/datenbank.mdb");
Gilt für Access 97 Datenbank. Für höhere Versionen müsste ich jetzt auch erst einmal im Internet suchen.
 

fisch100

Mitglied
danke für die schnellen antworten =)

das mit mysql war mir schon klar ... das löst mein problem aber auch nicht ...

ebenso wie
Ist die Datenbank unter dem Namen "Datenbank" als ODBC Datenquelle im Betriebssystem eingetragen?
Alternativ:
Java Code: Quelltext in neuem Fenster öffnen

1



Connection c = DriverManager.getConnection("jdbc:eek:dbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=c:/datenbank.mdb");

Gilt für Access 97 Datenbank. Für höhere Versionen müsste ich jetzt auch erst einmal im Internet suchen.

wobei ich denke (ich bin gerade nicht zuhause) dass ich bei dem versuch das ganze so anzugeben einen fehler bekommen hab bezüglich "die länge des datenpfades ist zu lange" - jedoch benötige ich hier wieder den vollständigen pfad des ortes wo das programm sich befindet ... was es zwar nicht daran hindert auf anderen computern zu arbeiten ... jedoch in der portabilität einschränkt ...
gibt es keinen weg darum .. oder muss ich vor dem programm start immer den aktuellen pfad setzten ... damit das programm weiß wo ich mich befinde?
 

fisch100

Mitglied
ja klar ... nur wie soll ich das mit der datenbank verbinden ... normal geht ja alles aus der java-datei auf relativenpfad (sofern nicht als absolut angegeben)

deswegen wundert es mich ja das es nicht geht einfach mit :"Dateiname" ...
 

F.S.WhiTeY

Bekanntes Mitglied
Pfade kann man auch "herausfinden" :

Java:
System.out.println(new File("").getAbsolutePath());


EDIT:

Hatte aus dem falschen Schnipped kopiert. Nun ist es richtig.
 
Zuletzt bearbeitet:
M

Marcinek

Gast
Der relative Pfad geht nicht von der Datei sondern von dem Arbeitsverzeichnis aus.

Wenn du das über eine IDE startest, dann kann man den festlegen.

Sonst da wo java ausgeführt wird
 

fisch100

Mitglied
Werd das dann zuhause ausprobieren - und es wird gehn ;)

@nrg warum kein jdbc-odbc Brigde ?!
ich mein mir ist es egal da es jetzt nichts "besonderes" können muss -> was wird sonst vorgeschlagen? (einzige vorraussetztung sollte ein einfaches eintragen in die tabelle sein ;) )
 

F.S.WhiTeY

Bekanntes Mitglied
1. Ein Testprojekt anlegen
2.folgenden code einsetzen und compilieren:
Java:
public static void main(String[] args){
System.out.println(new File("").getAbsolutePath());
}

3.ergebnis anschauen und drüber nachdenken

4. Schlussfolgern, das diese anweisung mir genau den Pfad nennt aus dem das Programm gestartet wird. Starte ich also das Programm über eine Batsh oder eine Executable-JAR wird mit das Verzeichniss der Batsh/JAR zurückgegeben.

5. Den String nehmen und als Datenbankpfad einsetzen.

6. Glücklichsein das es funktioniert und eine Portierbare Anwendung haben.
 

fisch100

Mitglied
das mit dem absoluten pfad funktioniert wunderbar -> VIELEN DANKE =)

jedoch behebt es noch immer nicht mein problem :/

hab nun die try-catch aufgetrennt um genau festzustellen wer nun wirklich den fehler verursacht:

Java:
try
{
//laden der Treiberklasse
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(Exception e)
{
System.err.println("Treiber: " + e);
}
try
{
//zurückgeben der neuen Verbindung
Connection con = DriverManager.getConnection("jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=D:/Datenbank.mdb");
}
catch(SQLException e)
{
System.err.println(e.toString());
System.err.println("SQL-State: " + e.getSQLState());
System.err.println("ErrorCode: " + e.getErrorCode());
e = e.getNextException();
}

Fehler:
java.sql.SQLException: [Microsoft][ODBC Driver Manager] Der Datenquellenname wurde nicht gefunden, und es wurde kein Standardtreiber angegeben
SQL-State: IM002
ErrorCode: 0

unter dem sql-state findet sich genau das selbe was er in der fehler zeile schreibt: irgendwas mag er an der quelle nicht -> hab dafür auch extra es direkt auf "D:/Datenbank.mdb" gegeben .. was keinen unterschied macht -.-

ich versteh echt nicht was da falsch ist ... ich denke/dachte ich muss NICHT in der verwaltung das ODBC eintellen (sonst wäre es ja auch nicht portabel)
 

fisch100

Mitglied
wenn ich im ODBC bei access auf konfigurieren gehe .... gekomm ich den fehler:
"Die Setup-Routinen für den Microsoft Access Driver (*.mdb) ODBC-Treiber konnten nicht gefunden werden. Installieren Sie den Treiber erneut."

"Fehler gefunden:
Der angegebene DSN weist eine nicht übereinstimmende ARchitektur von Treiber und Anwednung auf."

... liege ich mit der Vermutung richtig das ich weden dem die ganze Zeit meinen Fehler suche (abgesehen davon das ich noch andere Fehler/Probleme hatte ;) )
 

fisch100

Mitglied
ich hab keine ahnung mehr was ich machen soll -.-

hab mich jetzt an h2 versucht - das problem löst sich noch immer nicht - jedoch bekomme ich nun einen anderen fehler:

Treiber: java.lang.ClassNotFoundException: org.h2.Driver
java.sql.SQLException: No suitable driver found for jdbc:h2:~/test/test1
SQL-State: 08001
ErrorCode: 0

verwendeter code:
Java:
      try
      {
        //laden der Treiberklasse
        Class.forName("org.h2.Driver");
      }
      catch(Exception e)
      {
        System.err.println("Treiber: " + e);
      }
      try
      {
        //zurückgeben der neuen Verbindung
        Connection con = DriverManager.getConnection("jdbc:h2:~/test/test1", "sa", "");
      }
      catch(SQLException e)
      {
        System.err.println(e.toString());
        System.err.println("SQL-State: " + e.getSQLState());
        System.err.println("ErrorCode: " + e.getErrorCode());
        e = e.getNextException();
      }

hoffe jemand hat eine ahnung woran das liegt ... aber inzwischen bezweifel ich dass es meine dummheit ist (oder doch?)
 

fisch100

Mitglied
Dachte eigentlich dass das nicht nötig wäre - hab das mal angegeben also C:\....\H2\h2-1.3.155.jar

tut sich aber leider auch nichts =(

kann es sein das ich nur den "DB-erzeuger/server" davon hab?!
hab eigentlich erwartet das es gleich mitkommt der driver

EDIT: ok ... das mit dem pfad hab ich glaub ich jetzt verstande xD ... -> C:\....\H2\bin
wo dann weiters org\h2\ ist ... nur kein Driver .. nur build ...
 
Zuletzt bearbeitet:

fisch100

Mitglied
Ich hab leider noch immer keine Lösung gefunden :(
und auch leider absolut keine Ahnung mehr was ich machen/google soll,

bei access vermute ich ja das es daran liegt das der Treiber etwas hat da er einen Fehler in ODBC ausgibt,
deswegen (und wiel nrg meinte ich soll die finger davon lassen) wollt ich dann h2 versuchen -> nach dem erstellen der DB bekomm ich nun den Fehler mit dem Driver
hab schon fast jedes verzeichnis ausprobiert in die CLASSPATH zu geben (es sollte doch h2\bin\h2."version".jar sein ?!)
 

F.S.WhiTeY

Bekanntes Mitglied
Ich kenne den Java Editor leider nicht, aber vilt. könntest du ja testweise mal auf Netbeans 7.0 umsteigen und dort schauen ob du besser zurecht kommst?

Netbeans kann Datenbankquellen Automatisch anlegen und wenn du die Trieber importiert hast, ist das alles nur noch Klicki Klicki Bunti über ein Menü.

Also ich bin mittlerweile von Eclipse vollkommen weg und Nutze nur noch Netbeans, es ist nur angenehm und einfach.

Leider kann ich dir bei deinem H2 Problem nicht helfen, von H2 hab ich keine Ahnung :/
 

nrg

Top Contributor
noch zu dem punkt jdbc-odbc bridges: die schnittstelle geht über mehrere schichten, an denen verschiedene hersteller beteiligt sind. das ganze führt zu mehrmaligen parsen, overhead und ist ziemlich fehleranfällig. die geschwindigkeit und funktionsfähigkeit ist sehr von der systemumgebung abhängig. wenn du ein programm schreibst, das auf einer kiste laufen soll, wäre das eine überlegung (wobei ich das selbst dann nicht nehmen würde) aber in anderen fällen würde ich die finger davon lassen.

zu deinem problem mit dem buildpath:http://www.java-forum.org/ides-tools/63338-eclipse-javaeditor.html vllt hilft das
ansonsten egal wie ich google ich komm immer bei eclipse raus :). ich nutze selbst auch eclipse und da haste ne jar dem classpath mit paar klicks hinzugefügt (vllt wäre eine andere ide eine überlegung - ausser eclipse und netbeans gibt es ehrlich gesagt für mich keine wirkliche alternative). bei deiner fertigen jar steuerst du das dann mit der manifest.mf (jar mit winrar oder so öffnen und die manifest editieren) dazu kuck mal hier (der post von mir am ende) http://www.java-forum.org/java-basics-anfaenger-themen/118319-java-kommandozeile-starten-jar-libraries.html
 

fisch100

Mitglied
Vielen Danke!!!

Es geht jetzt sowohl im JavaEditor als auch in der jar Datei =) (mit h2)

Hab mir aber auch nun Netbeans installiert: es ist zwar eine umgewöhnung aber es liefert VIEL mehr informationen - was besonders für einen noch nicht so erfahrenen "Programmierer" (das ist das erste mal in einem Leben das ich mich als soetwas bezeiche ;) ) wie mich praktisch ist.

Nur ist die frage nun ... wo gebe ich hier die .jar ein=?
bzw -> ich hab direkt in netbeans eine datenbank (persistence - database schema) hinzugefügt
mit der jdbc:derby und hab dann ne Table hinzufügt ...
aber ich bekomm trotzdem nen fehler das kein driver da ist?!

wäre toll wenn ich das hier auch noch hinbekomm - da er mir schon jetzt sehr sympatisch ist

und so am rande: wie handhabt ihr (bzw sollte ich mit meinen normalerweiße gerade mal 5class datein) das ordnermanagment? ich finde das (zumindest jetzt) etws seltsam mit den ordnern

hab da jz:
projekt
->build
->nbproject
->src

finde das für meine zwecke etwas overkill?

EDIT: das mit dem .jar file hab ich gerade gefunden und ge geht auch (über h2)
 
Zuletzt bearbeitet:

F.S.WhiTeY

Bekanntes Mitglied
Die Ordnerstruktur würde ich so lassen, Projekte werden irgendwann auch mal größer und die Struktur unterleigt gewissen Konventionen.

Wenn du bei anderen Projekten wie z.B. Webapplikationen mal Hilfe brauchst ist die Ordnerstruktur echt entscheident.

Also nutze Netbeans Automatismen ;)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
I Erste Schritte Einfache Datenbank-Webseite erstellen als Nicht-IT-lerin Java Basics - Anfänger-Themen 24
M Daten aus errechneter Methode in Datenbank(SQLite) schreiben Java Basics - Anfänger-Themen 60
S Best Practice Fragen zu Projektstruktur einer Datenbank-Abfrage-App (MVC) Java Basics - Anfänger-Themen 13
I Element n aus Datenbank Query (JPA / Hibernate) Java Basics - Anfänger-Themen 3
I Passwort in Datenbank speichern um später wieder auszulesen Java Basics - Anfänger-Themen 5
S OOP Java Eingabe in verschiedene Datenbank Tabellen eintragen Java Basics - Anfänger-Themen 7
I H2 Datenbank starten / Daten in File speichern Java Basics - Anfänger-Themen 25
E schneller von der Datenbank abfragen Java Basics - Anfänger-Themen 15
E Datenbank Spalte zusammenzählen Java Basics - Anfänger-Themen 2
R Datenbank Java Basics - Anfänger-Themen 1
I API Key´s in der Datenbank decrypt / encrypten? Java Basics - Anfänger-Themen 23
I Werte (u.a. Geldbeträge) in Datenbank speichern und Rundungen? Java Basics - Anfänger-Themen 8
M Mehrere Datenbank zugriffe über tomee.xml regeln? Java Basics - Anfänger-Themen 1
M Datenbank oder Textdatei? Java Basics - Anfänger-Themen 4
S Datenbank Befehl nach Login Java Basics - Anfänger-Themen 5
S Datenbank Tabelle eine Zeile an einer bestimmten Stelle einfügen Java Basics - Anfänger-Themen 2
M Von der Datenbank zum Textfield Java Basics - Anfänger-Themen 16
R Best Practice Logik in der Datenbank oder in Java? Java Basics - Anfänger-Themen 3
R Datenbank-Werte dynamisch ausgeben Java Basics - Anfänger-Themen 19
B Frage zu Datenbank Design - Rechnungen, Angebote... und deren Positionen Java Basics - Anfänger-Themen 4
B Datenbank: Entity mit vielen Referenzen? Ansatz so ok? Java Basics - Anfänger-Themen 8
T Datenbank | Welche am Sinnvollsten? Java Basics - Anfänger-Themen 5
S Daten speichern, ohne Datenbank Java Basics - Anfänger-Themen 8
L Daten aus ArrayList in Datenbank durchsuchen Java Basics - Anfänger-Themen 5
M Datenbank in jTable Laden Java Basics - Anfänger-Themen 49
M Datenbank verbindung Java Basics - Anfänger-Themen 19
J Java Verbindung mit mysql Datenbank Java Basics - Anfänger-Themen 3
B Datenbank, aktuelle Ende als Zahl an Label übergeben Java Basics - Anfänger-Themen 7
T Collections Geeignete Collection/Liste/Datenbank Java Basics - Anfänger-Themen 17
B Treetable (rekursive Funktion) aufbauen von Datenbank Java Basics - Anfänger-Themen 4
R Input/Output Verbindung mit mySql-Datenbank Java Basics - Anfänger-Themen 9
D Compiler-Fehler Wert auf Datenbank übertragen und Sleep Thread Java Basics - Anfänger-Themen 3
N (Java) Regristrierung und Login System mit einer Datenbank Java Basics - Anfänger-Themen 5
J Datenbank Zugriff Java Basics - Anfänger-Themen 24
J Mit JSF Formular in Datenbank schreiben Java Basics - Anfänger-Themen 3
DaCrazyJavaExpert Verschiede Aktionen der Datenbank getrennt durchführen Java Basics - Anfänger-Themen 4
DaCrazyJavaExpert Datenbank wird nicht erstellt Java Basics - Anfänger-Themen 31
E Daten gehen nicht in Datenbank Java Basics - Anfänger-Themen 14
C JTable update mit MySQL Datenbank Java Basics - Anfänger-Themen 1
Meeresgott OOP Gui, Logik und Datenbank richtig aufbauen Java Basics - Anfänger-Themen 43
B Schreiben von zu vielen Einträgen in einer Datenbank Java Basics - Anfänger-Themen 9
S Datenbank auf Knopfdruck abfragen Java Basics - Anfänger-Themen 8
M Java als Webanwendung mit Datenbank abfrage Java Basics - Anfänger-Themen 3
N Datenbank mit GUI verbinden - Wie? Java Basics - Anfänger-Themen 5
1 Datenbank in Java Java Basics - Anfänger-Themen 1
M Erste Schritte Java Applet - HTML Seiten auslesen und in Access Datenbank schreiben? Java Basics - Anfänger-Themen 15
J Bücher Datenbank Java Basics - Anfänger-Themen 5
S Best Practice MVC und große Datenmengen aus einer mySQL - Datenbank Java Basics - Anfänger-Themen 24
J Datum und Uhrzeit in Datenbank falsch hinterlegt Java Basics - Anfänger-Themen 13
R Erstversuch Datenbank Java Basics - Anfänger-Themen 6
I Daten speichern ohne Datenbank Java Basics - Anfänger-Themen 20
A Erste Schritte Verbindung zu MySQL Datenbank herstellen Java Basics - Anfänger-Themen 7
T Sql Datenbank - variable übergeben? Java Basics - Anfänger-Themen 8
C Passwörter möglichst sicher in Datenbank speichern Java Basics - Anfänger-Themen 18
W Erste Schritte Exceltabelle in Datenbank übertragen mittels XDEV Java Basics - Anfänger-Themen 7
J GUI mit phpMyAdmin Datenbank verbinden Java Basics - Anfänger-Themen 0
K Erste Schritte Datenbank SQL erklärung Java Basics - Anfänger-Themen 15
B Lokale Datenbank Java Java Basics - Anfänger-Themen 2
B Klassen Doppelte werte Filtern XML, Datenbank und DOM Java Basics - Anfänger-Themen 3
Todesbote Int Array mit Hibernate in Datenbank speichern. Java Basics - Anfänger-Themen 2
U Datenbank in Java Java Basics - Anfänger-Themen 8
M Keine Datenbank verbindung Java Basics - Anfänger-Themen 14
N mit Werten aus einer mysql datenbank in java rechnen Java Basics - Anfänger-Themen 17
Q Datenbank nicht über separaten Server Java Basics - Anfänger-Themen 4
B Dateiname in Datenbank schreiben Java Basics - Anfänger-Themen 2
J fortlaufende Objekte durch Variable auswählen; Datenbank Java Basics - Anfänger-Themen 4
S ArrayList in mysql Datenbank speichern Java Basics - Anfänger-Themen 6
C Datenbank - Welche Java Basics - Anfänger-Themen 5
B Java Objektorientierte Datenbank - Assoziation Hilfe Java Basics - Anfänger-Themen 4
G Input/Output Serialisierung oder Datenbank Java Basics - Anfänger-Themen 6
J Erste Schritte Objekte in Datenbank speichern Java Basics - Anfänger-Themen 26
A Android Datenbank gaaanz einfaches Insert geht nicht - warum? Java Basics - Anfänger-Themen 4
L Erste Schritte Datenbank Zugangsdaten sicher? Java Basics - Anfänger-Themen 15
S Input/Output Primzahlen Datenbank Java Basics - Anfänger-Themen 11
B Mit Java-Programm Daten aus MySQL-Datenbank auslesen, lokal und nicht lokal. Java Basics - Anfänger-Themen 10
K Input/Output Datenbank Java Basics - Anfänger-Themen 27
M Datenbank in die Gui Java Basics - Anfänger-Themen 4
J JTable mit Daten aus Datenbank füllen Java Basics - Anfänger-Themen 3
F Erfassung von PCs in eine SQLite-Datenbank über JDBC Java Basics - Anfänger-Themen 9
T Datenbank Abfrage Exception Null Java Basics - Anfänger-Themen 2
M Brauche ich ein Datenbank oder nicht? Java Basics - Anfänger-Themen 6
D JDBC Datenbank fail?! Java Basics - Anfänger-Themen 20
A Problem beim einfügen in eine Datenbank Java Basics - Anfänger-Themen 2
H Datenbank suche in kleine Schritte Java Basics - Anfänger-Themen 6
B Personalnummer aus Datenbank Java Basics - Anfänger-Themen 3
M Welche Datenbank? Java Basics - Anfänger-Themen 5
J RadioButtonInhalt in Datenbank übergeben Java Basics - Anfänger-Themen 3
R Datenbank bei Klassenverteilung führt zu NullPointerException Java Basics - Anfänger-Themen 7
J PW von Datenbank wie abspeichern? Java Basics - Anfänger-Themen 2
F Verbindung zu MySql Datenbank Java Basics - Anfänger-Themen 4
MU5T4NG JPasswordField als Hash in Datenbank abspeichern Java Basics - Anfänger-Themen 3
J Kleine Datenbank programmieren Java Basics - Anfänger-Themen 2
J Eigene kleine Datenbank programmieren Java Basics - Anfänger-Themen 2
F Collections Datenbankdaten in einer Map speichern, bearbeiten, sortieren und wieder in Datenbank schreiben Java Basics - Anfänger-Themen 20
T Zugangsdaten für Datenbank in Java-Programm speichern? Java Basics - Anfänger-Themen 5
S Schnittstelle für Datenbank bzw. Dateiformat Java Basics - Anfänger-Themen 2
C ComboBoxModel mit Daten der Datenbank verändern Java Basics - Anfänger-Themen 2
T Datenbank automatisch erzeugen beim ersten Start Java Basics - Anfänger-Themen 6
I Datenbank - nach erster Verbindung keine Verbindung mehr Java Basics - Anfänger-Themen 3
F Datenbank in eine Textdatei speichern Java Basics - Anfänger-Themen 13

Ähnliche Java Themen

Neue Themen


Oben