[JDBC] Entfernte MySQL Datenbank für lokae Swing

Hallo,

ich möchte eine kleine JDBC-Anwendung in Swing erstellen. Kennt jemand einen Hoster, der eine MySQL Datenbank anbietet, die man auch entfernt nutzen kann?

Die meisten Hoster erlauben nur den Zugriff von ‚localhost‘ .

Gruß,

Robert
__________________
Regionale Auktionen finden: http://www.regiosnip.de

Du kannst mySQL frei herunterladen und bei Dir auf dem Rechner installieren…

Hallo,

ist schon klar. Der Witz bei der Sache mit der entfernter DB ist, dass so mehrere Personen mit der gleichen Daten arbeiten dürften.

Gruß,

Robert


Regionale Auktionen finden - http://www.regiosnip.de/

http://www.hostsharing.net erlaubt PostgreSQL und MySQL auch remote zu nutzen. Bei MySQL muss man dafür prinzipbedingt separate User erstellen (…@% statt …@localhost), was auch bei anderen Hostern - die das zulassen - so sein wird.

Grüße
… Michael

Hallo,

danke für die Antwort.

Die sind aber sehr teuer ( ~1000% teurer als mein Hoster )

Gibt es irgendwo eine bessere Alternative?

Gruß,

Robert


Regionale Auktionen finden - http://www.regiosnip.de/

Teuer wird’s wenn die Daten weg sind. Für Spielkram wird man allerdings sicherlich andere Preisklassen wählen.

Die sind aber sehr teuer ( ~1000% teurer als mein Hoster )

Für 10 EUR im Monat kriegst du bei verschiedenen Anbietern einen Virtual Server. Darauf kannst du installieren was du lustig bist, also z.B. MySQL, und du kannst diese Dinge auch von außen abrufen. Allerdings musst du dich dann auch um Updates, Sicherheitspatches usw kümmern, denn dann bist du Admin eines Servers.

ist schon klar. Der Witz bei der Sache mit der entfernter DB
ist, dass so mehrere Personen mit der gleichen Daten arbeiten

Ah, ich verstehe. Aber von wie vielen Leuten reden wir hier? Ein paar Kumpel zum testen der Funktionalität oder den Besuchern auf der Webseite, wenn das ganze fertig ist? Im ersten fall kannst Du die Datenbank von zu Hause vorhalten.

80 Leute verteilt in ganz Deutschland.

Gruß,

Robert


Regionale Auktionen finden - http://www.regiosnip.de/

Hallo,

einen „Hilfsdienst“ wie MySQL dafür öffentlich frei zu geben, halte ich für den falschen Weg. Der korrekte Weg wäre dazu meiner Meinung nach ein Server-Part, mit dem der Client kommuniziert. Nur der Server-Part kommuniziert mit Hilfsdiensten wie beispielsweise MySQL. Wenn du dann noch bei der Kommunikation deiner Server- und Client-Parts auf Standards setzt, wie beispielsweise REST (mit XML oder JSON) über HTTP (mittels HTTP-Auth), dann hast du noch mehr Flexibilität (d.h. weder der Server noch der Client müssen - aber können - Java sein, du könntest auch ein iPhone-Interface mittels Objective-C schreiben etc).

Gruss
McPringle

Hallo,

da bin ich ganz Deiner Meinung. Offener Dienst wäre wahrscheinlich zu unsicher.

Ich habe versucht jpmdbc (http://www.gruessditsch.de/blog/?p=14) zu benutzen, aber dort sind Prepared Statements unbekannt.

Die brauche ich in meiner JPA-App.

Gruß,

Robert


Bequem regionale Auktionen finden - http://www.regiosnip.de/

Hallo!

Ich habe versucht jpmdbc
(http://www.gruessditsch.de/blog/?p=14) zu benutzen, aber dort
sind Prepared Statements unbekannt.

Ich übersetze das mal: Ich möchte mich nicht nur in die Abhängigkeit einer Technologie (MySQL) begeben, ich möchte auch zusätzlich noch von einer weiteren Technologie (SQL über HTTP) sowie einer zusätzlichen Programmiersprache (PHP) und damit zusammenhängend auch noch von weiteren Server-Technologien (Apache mit PHP-Unterstützung) abhängig machen. Auch ist mir das Internet noch nicht unsicher genug, ich möchte gerne meine Daten allen anderen zur freien Verwendung - inklusive Löschen - zur Verfügung stellen. Mein Vertrauen in andere Menschen ist unendlich gross.

Sorry, aber sowas finde ich totalen Unsinn. SQL-Abfragen über HTTP und ein PHP-Backend zu tunneln ist in meinen Augen Symptombekämpfung (ich will „öffentliches“ SQL) statt Problemlösung (Datentransfer). Was ist dein Problem? Dass MySQL keine externen Zugriffe erlaubt? Falls du das denkst: FALSCH!

Ich versuche dir mal näher zu bringen, was ich denke. Ich denke, Dein Problem ist nicht die öffentliche Verfügbarkeit von MySQL. Dein Problem ist, Daten, welche auf dem Server bereit liegen, auf den Clients zur Verfügung zu haben. Verstehst du den Unterschied? Versuche nicht, die Technologie (SQL) auf den Clients verfügbar zu machen, sondern nur das, was sie benötigen: die Daten! Nur auf diese Weise behältst du die volle Kontrolle über deine Daten und die Business-Logic.

Lese dir bitte mal folgenden Artikel über REST durch: http://de.wikipedia.org/wiki/REST

REST ist nur ein Beispiel, wie ich es lösen würde. Wenn du dir dazu noch eine Library (z.B. Restlet: http://www.restlet.org/) suchst, die dir bei der Umsetzung hilft, bist du nicht nur viele Probleme (gerade im Bezug auf Sicherheit der Daten) los, sondern gewinnst viel Flexibilität hinzu.

Folgende Probleme hast du, wenn du von den Clients aus selbst SQL absetzt:

  • Keine Kontrolle über die SQL-Statements (der Client ist nicht unter deiner Kontrolle)
  • Totale Abhängigkeit von der Server-Technologie (eine Änderung am Server, z.B. der Datenbank, führt dazu, dass alle Clients aktualisiert werden müssen)
  • Angreifbarkeit, da die Datenschicht (SQL) von extern attackiert werden kann.

Folgende Fähigkeiten gewinnst du, wenn du auf eine Technologie wie (beispielsweise) REST über HTTP mit JSON oder XML (je nach persönlichem Geschmack) setzt:

  • Totale Kontrolle über alle Daten, da diese nur auf dem Server modifiziert werden.
  • Client kann keine ungewünschten Änderungen an den Daten vornehmen.
  • Dadurch Unabhängigkeit von der Server-Technologie.
  • Austausch der DB ohne Änderungen am Client möglich.
  • Neue Server-Technologie gefällig? Kein Problem, REST-URIs bleiben gleich, auch hier keine Änderungen an den Clients nötig.
  • Noch ein Client z.B. für Handy oder PDA, die kein Java unterstützen? Kein Problem, OHNE Änderungen am Server!

Du hast einen Server-Teil, dem vollkommen egal ist, welche Technologie der Client einsetzt. Du hast einen Client-Teil, dem vollkommen egal ist, welche Technologie der Server einsetzt. Du hast vollkommene Freiheit bei der Weiterentwicklung sowohl des Servers als auch des Clients. Du hast keine Abhängigkeiten auf eine bestimmte Technologie (wie SQL). Du hast keine Abhängigkeiten zu bestimmten Programmiersprachen (Java, PHP, C++).

Gruss
McPringle

Hi nochmal:

da bin ich ganz Deiner Meinung. Offener Dienst wäre
wahrscheinlich zu unsicher.

Ich habe versucht jpmdbc
(http://www.gruessditsch.de/blog/?p=14) zu benutzen, aber dort
sind Prepared Statements unbekannt.

Also ein offener Dienst wäre dir zu unsicher. Aber was ist anders, wenn du den offenen Dienst über PHP zur Verfügung stellst und die Zugangsdaten auch noch im Java-Code haben musst?

Denk mal drüber nach
McPringle

Hallo McPringle,

ich bin ganz deiner Meinung. Wir setzen REST ( mit Jersey https://jersey.dev.java.net/ ) ein.

Bei der Frage hatte ich ein kleines Projekt im Sinn: eine kleine Swing-Anwendung, die als Datensenke MySQL mit JPA nutzt. Da wollte ich nicht zu viel Aufwand investieren. Die Anwendung habe ich zum größten Teil mit Wizzards von Netbeans erstellt.

Ansonsten finde ich die Architektur von REST sehr gut. Bei so vielen Daten bittet sich solch einer Resource-Ansatz ja an.

Gruß,

Robert