Über Internet Datenbank mit Programm abrufen

  • Themenstarter Themenstarter Gelöschtes Mitglied 51845
  • Beginndatum Beginndatum
G

Gelöschtes Mitglied 51845

Gast
Huhu Community,

ich hoffe, ich bin hier bei euch "richtig" 🙂

Ich habe mir mittels Selbststudium Java beigebracht, zumindest die Grundlagen. Mein Programmierbuch behandelt aber leider nicht (ausreichend) das Thema Datenbanken. Es wird von vorhandenem Grundwissen in MySql ausgegangen - das bei mir leider aber nicht der Fall.
Daher wende ich mich an euch 🙂

Ich habe ein kleines Java-Programm erstellt, das soweit wie gewünscht funktioniert. Die Daten werden aber lokal in einer Textdatei gespeichert - das möchte ich nun ändern. Die Daten sollen von mehreren Computern (nicht im selben LAN) abrufbar sein.
Ist es möglich, das ohne Kosten zu verwirklichen? Wenn nicht, dann würde ich mich trotzdem über Alternativen freuen 🙂

Ich habe hier im Forum schon von WebServices gelesen, habe mich damit aber nicht recht zurechtgefunden.

Vielen Dank im Voraus!
 
Wenn Du das selber machen willst, dann wird dir aber nichts andere übrig bleiben als einen Webservice selber zu schreiben. Das bedeutet Wissen in mySQL und z.B. PHP aneigenen.
 
Wissen in PHP ist kaum vorhanden, lernen wir aber gerade in der Schule 😉
Einen Webservice selber zu schreiben, habe ich dennoch nicht vor ^^
Was sind die anderen Möglichkeiten? Einfach einen kostenpflichtigen Webservice verwenden? Brauche ich für die Verwendung eines Webservices auch noch tiefergehende MySQL Kompetenzen, oder nicht?
 
Das heißt, es ist unmöglich, ein Programm zu schreiben, das auf eine eigene Datenbank zugreift, ohne vorher ein eigenes Webservice geschrieben zu haben? Ich nehme ein Webservice zu schreiben ist komplex, nicht?
 
Nein, du kannst von deinem Programm aus natürlich auf deine Datenbank zugreifen - auch übers Internet, wenn verfügbar - mit der richtigen Adresse.
 
Hätte mich gewundert ^^
Könntest Du das bitte näher erläutern, wie ich das machen kann?
 
Nein. Von mir gibts nur auf konkrete Fragen, konkrete Antworten. Alles andere kann man sich im Internet suchen: HIER zum Beispiel beim offiziellen Tutorial.
 
Okay, dann eine konkrete Frage:
Was mache ich im Folgenden falsch?

Java:
package datenbank;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class Datenbanktest {
    static String ConnectURL = "URL";
    static String user = "username";
    static String pw = "pw";
    static Connection conn;

    public static void main(String[] args) {
        try {
            Class.forName("com.mysql.jdbc.Driver").newInstance();
        } catch (Exception e){
            System.err.println("Treiber konnte nicht geladen werden");
            System.err.println(e);
            e.printStackTrace();
            System.exit(-1);
        }
        System.out.println("Treiber wurde erfoglreich geladen");
        try {
            conn = DriverManager.getConnection(ConnectURL, user, pw);
            System.out.println("Funktioniert!");
        } catch (SQLException e1) {
            System.err.println("Keine Verbindung möglich");
            e1.printStackTrace();
            System.err.println("SQLException: "+e1.getMessage());
            System.err.println("SQLState: "+e1.getSQLState());
            System.err.println("VendorError: "+e1.getErrorCode());
            System.exit(-1);
        }
        System.out.println("Finished");
    }

}

Der Code kommt von meinem Programmierbuch. Der dürfte also soweit stimmen^^
Bei der URL hat's mich jedoch. Ich habe mir bei "bplaced.net" einen Account erstellt. Dort mittels PhpMyAdmin 2 zusammenhängende Tabellen erstellt. Exportiere ich diese beispielsweise in PDF-Format, passt die Tabelle perfekt. Wie kann ich nun auf die Tabelle zugreifen? Hätte die bei blpaced angegebene Domain bereits versucht, funktioniert aber nicht. Sieht dann so aus:
Java:
static String ConnectURL = "jdbc:mysql://Domain";
Statt "Domain" halt die Domain eingesetzt
Ergebnis ist ein Communication Link Failure

Stell mich normalerweise nicht so blöd an 😀
 
Bei bplaced darfst du nicht von außerhalb auf die Datenbank zugreifen.
Nur PHP-Programme, die auf deren Servern laufen, dürfen das.
 
Okay, das heißt, ich kann meinen Account bei bplaced gleich wieder löschen, da er mir in meinem Fall genau gar nichts bringt?
Gibt es solche Anbieter, wo das funktioniert, oder ist der ganze Ansatz falsch?
 
Gibt es solche Anbieter, wo das funktioniert, oder ist der ganze Ansatz falsch?
Ja, es gibt solche Anbieter. Hier 2 Beispiele:
* http://www.db4free.net/index.php?language=de : nur zum Testen
* http://www.freemysqlhosting.net/

Ich habe die beiden schon länger auf meiner Liste, habe sie aber noch nicht ausprobiert ;-).

Generell versucht man aber aus Security-Gründen eine Datenbank nicht offen im Internet zugreifbar zu haben, sondern hinter einem Applikationserver zu verstecken.
 
Ja, ich versuche gerade eine PHP Seite zu schreiben, mit welcher ich die Tabelle ausgeben lassen möchte. Dann mit dem Java Programm auslesen.
Habe jedoch immer als Fehlermeldung "Connection timed out" in der Zeile, wo
PHP:
$link = mysqli_connect($server, $username, $passwort);
steht. 🙁
 
Eine Frage hätt ich noch 🙂 :
Wie schaffe ich es dann, Daten der Datenbank zu ändern? Neue hinzuzufügen?
 
Ich würde, wenn mir noch das Know-How fehlt und ich am lernen bin, das nicht öffentlich im Internet machen sondern einen Server lokal (z.B. als VM) erstellen.
Was ist denn dein Ziel des ganzen? Was soll das Java Programm machen? Warum muss die DB im Internet stehen?
 

Zurück
Oben