# Datenbankdatei in Java einbinden



## Mem4o (26. Feb 2016)

Hallo, 
mein Eclipse ist auf der Macbook - Festplatte installiert. Ich habe eine "Virtual Box VM", wo ich MySQL installiert habe. 
Nun möchte ich in Java eine Datenbankdatei einbinden, ich habe schon die Datei "sqljdbc4.jar" eingefügt und den Driver installiert.
Im Anhang befindet sich eine PDF-Datei, hier kann man sehen, wie weit ich gerade gekommen bin, wenn ich eine TestConnection starte bekomme ich eine Fehlermeldung -> siehe Anhang.
Ich denke dass die Connection URL falsch ist, aber wie kann ich den Fehler beheben mit einer Virtuellen Maschine auf einem Mac?


----------



## kneitzel (26. Feb 2016)

Also ich verstehe da einige Dinge nicht. Du hast eine VM, in der Du MySQL installiert hast und du willst dich zu diesem Server verbinden.
=> Dann solltest du doch auch einen MySQL Treiber verwenden und keinen SQL Server Treiber

Und wenn Du auf dem Mac die Software laufen lassen willst, dann musst Du dafür sorgen, dass die VM und der Mac in einem Netz miteinander reden können. Und dann musst Du natürlich die VM als Server angeben und nicht localhost.


----------



## JStein52 (26. Feb 2016)

Genau. Du müsstest da so was wie mysql-connector-java....jar benutzen !
Und:
ConnectionURL = jdbc:mysql://<deineVM>
DriverClass = com.mysql.jdbc.Driver


----------



## Mem4o (26. Feb 2016)

kneitzel hat gesagt.:


> Also ich verstehe da einige Dinge nicht. Du hast eine VM, in der Du MySQL installiert hast und du willst dich zu diesem Server verbinden.
> => Dann solltest du doch auch einen MySQL Treiber verwenden und keinen SQL Server Treiber
> 
> Und wenn Du auf dem Mac die Software laufen lassen willst, dann musst Du dafür sorgen, dass die VM und der Mac in einem Netz miteinander reden können. Und dann musst Du natürlich die VM als Server angeben und nicht localhost.



Danke für deine schnelle Antwort, also ich möchte in Eclipse einfach eine Datenbank-Datei anbinden, wie kann ich die Connection URL verändern?  Was muss ich genau eingeben, welches Pfad? 
Wie finde ich den Servernamen vom VM ?


----------



## kneitzel (26. Feb 2016)

Also Du bindest keine Datenbankdatei ein. Die Datenbank mit den Daten (und damit den Files, die die Daten enthalten) liegen auf dem Server.
Und wir können nicht wissen, wie Du die VM konfiguriert und aufgebaut hast. Du kannst die IP Adresse statt localhost verwenden. Aber das funktioniert nur, wenn Du auch alles so konfiguriert hast, dass die Systeme sich per Netzwerk erreichen können.

Gibt es irgendwelche Gründe, wieso Du es so verkomplizierst? Wieso installiert Du kein MySQL auf Deinem Mac? Dann kannst Du den MySQL Server per localhost erreichen.

Und Du hast doch irgendwie eine TestConnection geöffnet. Du hast doch ein PDF mit Screenshots gepostet. Ich selbst nutze kein Eclipse und kann Dir da keine genauen Schrittanleitungen geben.


----------



## Mem4o (26. Feb 2016)

kneitzel hat gesagt.:


> Also Du bindest keine Datenbankdatei ein. Die Datenbank mit den Daten (und damit den Files, die die Daten enthalten) liegen auf dem Server.
> Und wir können nicht wissen, wie Du die VM konfiguriert und aufgebaut hast. Du kannst die IP Adresse statt localhost verwenden. Aber das funktioniert nur, wenn Du auch alles so konfiguriert hast, dass die Systeme sich per Netzwerk erreichen können.
> 
> Gibt es irgendwelche Gründe, wieso Du es so verkomplizierst? Wieso installiert Du kein MySQL auf Deinem Mac? Dann kannst Du den MySQL Server per localhost erreichen.
> ...



Weil MySQL auf Mac nicht funktioniert sondern nur auf Windows. ok danke für die info werde ich mal versuchen


----------



## JStein52 (26. Feb 2016)

In deinem Code könnte das so irgendwie aussehen:


```
dbName = "DeineDatenbank";
        dbUser = "BenutzernameInDerDatenbank";
        dbPasswort = "DatenbankPasswort";
        dbConnection = dbName+"?user="+dbUser+"&password="+dbPasswort;

        myConnectionURL = "jdbc:mysql:<deineVM";
        myDriverClass = "com.mysql.jdbc.Driver";
            try {
                Class.forName(myDriverClass).newInstance();
                conn = DriverManager.getConnection(myConnectionURL + "/" + dbConnection);
```


----------



## Dukel (26. Feb 2016)

Mem4o hat gesagt.:


> Weil MySQL auf Mac nicht funktioniert sondern nur auf Windows. ok danke für die info werde ich mal versuchen



https://dev.mysql.com/doc/refman/5.5/en/osx-installation.html
http://www.mysql.com/support/supportedplatforms/database.html


----------



## kneitzel (26. Feb 2016)

Also MySQL funktioniert auch auf dem Mac. Habe ich in der Vergangenheit selbst lange genug genutzt.
Die MySQL Dokumentation enthält ja auch ein Kapitel zur Installation von MySQL auf OS X:
https://dev.mysql.com/doc/refman/5.5/en/osx-installation.html


----------



## Thallius (26. Feb 2016)

Für Mac gibt es Mamp wie für Windows Wamp. Wer allerdings nicht in der Lage ist das zu ergoogeln, der wird auch nicht in der Lage sein damit zu arbeiten...


----------



## kneitzel (26. Feb 2016)

Naja - Mamp ist Overkill, wenn man doch einfach nur ein MySQL Server haben möchte. Apache und PHP wird dazu ja nicht benötigt. Zudem könnte sich die Installation mit Apples "Server" App beissen. (Ich finde da das Apple Konstrukt extrem mangelhaft. Hatte da mehrere Probleme, und ich habe dann OS X später durch Linux ersetzt, ehe ich dann dazu übergegangen bin, mir wieder mal eine reine Windows Umgebung aufzubauen.)


----------



## Thallius (26. Feb 2016)

Das "Apple Konstrukt" ist nichts anderes als ein Apache Server. Also macht der PHP Server den Mamp jetzt noch zusätzlich zu dem gewünschten MySQL Server installiert den Braten auch nicht mehr fett 

Und wer von Mac zu Linux zu Windows wechselt der hat es eh nicht anders verdient


----------



## kneitzel (26. Feb 2016)

Also diese Server App von Apple bringt auf Apple Eigenart einige Open Source Applikationen mit. Und das ist keineswegs kompatibel mit anderen Lösungen, die z.B. über Ports oder so installiert erden konnten. Apple wollte da wohl etwas für DAUs bauen und das Ergebnis war zumindest vor paar Monaten einfach mangelhaft. Apple selbst hat ja wohl auch die eigene Unfähigkeit erkannt. Erst verschwand der xserv und dann auch der imac server....

Und weg musste ich wegen absoluten Qualitätsproblemen. Der imac neigte zu massiven Störungen. Der shutdown blieb komplett hängen und so Dinge. Damit verbunden waren Probleme mit dem Filesystem, die mit Apple Boardmitteln nicht zu beheben waren. Erinnerte mich an alte DOS Zeiten - da war es üblich, Tools wie Norton Utilities zu haben. Für mich hiess das Tool DiskWarrior.

Und mein MBA hatte oft Unterbrechungen bei USB Disks. Blöd, wenn da eine Parallels VM lief, den die brach dann ab. Dachte mal, dass die Disk evtl. zuviel Strom ziehen würde, aber das war es nicht.

Unter Linux und Windows sind solche Probleme übrigens unbekannt. Also an der Hardware scheint es nicht zu liegen. Hardware des MBA ist aber genial: Unter dem Trackpad ist der Akku. Wenn der sich mit der Zeit ausdehnt, dann drückt er von unten gegen das Trackpad und das geht dann nicht mehr. Tritt natürlich erst nach Ablauf der Garantie auf ....

Also mit den Apple Erfahrungen werde ich wohl um so teuren Schrott einen großen Bogen machen.

Der letzte Computer, den ich mir gekauft habe, war eine Dell Workstation. Leasing Rückläufer, 24GB Ram, Xeon CPU, mehr Speicherbandbreite und Rechenleistung als die imacs bieten (i7 ist da ja nicht mehr im Angebot!) zu einem Preis weit unter den neuen oder gebrauchten Macs.

Mein Arbeitsgerät ist derzeit ein alter Dell Notebook mit etwas mehr RAM und einer SSD - im Markt gibt es viel bessere Grundsysteme für unter 100 Euro, Speicher 50 Euro oder so und SSD für 150 und man hat ein super Arbeitssystem für viele Dinge. Natürlich von Gewicht, Größe und Akkulaufzeit nicht mit einem MBA vergleichbar. Als ich 2x 1h in der Sbahn arbeiten wollte, war das wichtig ... Jetzt ist die Docking Station wichtiger für mich.

Aber das ist alles nicht Thema hier. Will auch niemanden überzeugen. Zeigt nur mein Leidensweg. Und ich bin zu arm, als dass ich mir alle paar Monate ein neues Spielzeug für über 1000 € kaufen könnte, das dann nach Garantie-Ende nur Probleme macht


----------



## Thallius (26. Feb 2016)

Frag ich mich warum du überhaupt einen shutdown gebraucht hast... 

Mein iMac läuft jetzt über 5 Jahre ohne das ich ihn einmal herunter gefahren hätte. Bin vor 7 Jahren von Windows auf Mac umgestiegen und habe keinerlei Probleme irgendwelcher Art. Das Zeug funktioniert einfach. Für mich, der jede Stunde die ich an meinem Werkzeug rumbasteln muss, 120 Euro nicht berechnen kann ist das essentiell.

Gruß

Claus


----------



## kneitzel (27. Feb 2016)

Shutdown ist Bestandteil eines Reboots. Reboots werden für Aktualisierungen von OS X benötigt. Und die wirst Du in den 7 Jahren auch öfters gehabt haben (hoffe ich mal). So Du zu den Usern gehörst, bei denen es einfach funktioniert, so wirst Du zufrieden sein. Sobald Du aber (so wie ich und leider nicht unerheblich viele andere) in Probleme rennst, dann bist Du aufgeschmissen.

Und der Fakt bleibt, dass sehr viele gar kein solches High End Gerät benötigen. Ich habe ja meine Quellen für Hardware aufgeführt und auch, was ich derzeit so einsetze. (Ok, nicht ganz so im Detail. Ich habe derzeit im Einsatz: Dell D830 und Dell Precision T3500)

Und es ist leider auch so, dass Apple nicht gerade seine Fähigkeit bewiesen hat. Ich kenne Apple ja schon sehr lange und kenne die massiven Probleme, die halt damals bei System 6 und System 7 da waren und wie schwer Apple sich mit dem Multitasking getan hat. Die Stabilität vom System 6 war auch nicht wirklich existenziell - um effektiv arbeiten zu können benötigte man viele "AddOns", die das System dann aber recht instabil gemacht haben. Hab damals bei einer Werbeagentur geholfen, die Systeme stabiler hin zu bekommen. Aber bei der aktuellen Technologie sehe ich als Schwachpunkte:
- Mangelhafter Installer - klar- einfache Applikationen werden einfach so per drag and drop installiert und entfernt, aber sobald etwas auch etwas mehr ins System rein muss, dann gibt es einen Installer. Aber ein Deinstallieren gibt es nicht. Aber man kann ja von Hand durch die Verzeichnisse und aufräumen...
- Grafiktreiber beim Mac Pro: Wozu sind die Grafikkarten nur miteinander verbunden? Hmm .... Der Windows Treiber nutzt es, aber bei Apple ist das etwas, das die noch nicht durchschaut haben. (So bootet ein Verwandter zum spielen immer Windows denn da ist die Grafikleistung dank Nutzung von 2 Grafikkarten deutlich besser.)
- Probleme bei der Hardware von Zeit zu Zeit. Mein MBA Akku der dann halt das touchpad "deaktiviert". Aber es gab auch die Serie von MacBook Pros, die Probleme mit der Grafik hatten. Und erst als es in den USA vor Gericht ging war dann irgendwann Apple doch einmal "kulant" ... (Eine Verurteilung hätte wohl auch größere Folgen gehabt so das Rechtssystem dort ähnlich funktioniert wie unseres wo vorhandene Urteile auch als Referenz angeführt werden.)

Es gibt noch mehr, aber das ist eigentlich Off Topic. Es freut mich, dass Du so zufrieden bist mit Deinem Mac. Ich will ihn Dir auch nicht schlecht reden. Wenn Du zufrieden bist, ist es doch super. Und ich wünsche Dir von ganzem Herzen, dass Du keine ähnlichen Erfahrungen machen musst wie ich.


----------



## AndiE (27. Feb 2016)

@Mem4o: Kannst du auf der Virtuell Box den MySQL-Server starten und damit von der Console aus arbeiten, z.B. eine Tabelle erstellen und abrufen? Soweit ich mich erinnere, muss man den Server dabei eine IP zuweisen. Das wäre bei dir eine, die im virtuellen Netzwerk liegt. Dann muss man meiner Meinung nach dem Wirtsrechner auch den Zugang zu diesem virtuellen Netzwerk erlauben. Aber da eine Virtualisierung ja in einer "Sandbox" läuft, könnte es da auch Schwierigkeiten geben, weil die Sandbox üblicherweise vom Dateisystem des Wirtsrechners abgetrennt läuft.


----------



## Bitfehler (27. Feb 2016)

kneitzel hat gesagt.:


> Also ich verstehe da einige Dinge nicht. Du hast eine VM, in der Du MySQL installiert hast und du willst dich zu diesem Server verbinden.
> => Dann solltest du doch auch einen MySQL Treiber verwenden und keinen SQL Server Treiber
> 
> Und wenn Du auf dem Mac die Software laufen lassen willst, dann musst Du dafür sorgen, dass die VM und der Mac in einem Netz miteinander reden können. Und dann musst Du natürlich die VM als Server angeben und nicht localhost.



Nur eine kleine Ergänzung:
In der Standardinstallation von mySql erlaubt die Konfiguration nur die Annahme von Verbindung von localhost, das heißt wenn du von einer anderen IP eine Verbindung aufbauen möchtest, dann ist eine Anpassung der Konfiguration erforderlich, da das Datenbanksystem die Verbindung sonst nicht akzeptiert.


----------

