# Offline App mit online MYSQL - DB verbinden



## demo-kind (16. Sep 2011)

hey leute,

wie ihr bestimmt schon bemerkt habt, bin ich kein java geek, sondern eher in richtung c und co. unterwegs, weshalb ich eine - nicht so simple - frage habe, wie ich finde.

wie das thema es schon beschreibt, geht es mir darum eine verbindung zw. einem offline Java programm und einer mysql db, welche sich im internet befindet, herzustellen.

ich würde gerne über eine applikation datensätze ändern, hinzufügen aber auch löschen können.

ich hoffe jemand kann mir eine außführliche beschreibung posten, denn ich habe absolut keine ahnung .

wie ich die verbindung offline realisiere mit xampp weiß ich, jedoch lässt sich das nicht in richtung online übertragen.

auch die finger habe ich mir schon wundgegoogled und alles in allem bastle ich an diesem problem schon fast seit 1,5 jahren - ich wäre also sehr dankbar, wenn mir jemand weiterhelfen könnte.

gruß michaela und danke für alle die sich der sache annehmen


----------



## alcedo707 (16. Sep 2011)

Das wäre ja kein offline program, wenn man sich im internet zu einer mysql datenbank verbindet, oder täusche ich mich da?


----------



## demo-kind (16. Sep 2011)

nein .. da hast du recht. das eigentliche programm ist jedoch keine web-applikation, sondern befindet sich auf außgewählten rechnern und liegt somit nicht auf dem server, so wars gemeint


----------



## bone2 (16. Sep 2011)

am soruce code ändert sich online doch nix, einfach die ip eintragen bei der verbindung


```
public class DBtest{

    public static void main(String[] args) {

        System.out.println("Start");

        String driverName = "com.mysql.jdbc.Driver";
        String url = "jdbc:mysql://localhost:4406/"; //ip, domain, whatever
        String dbName = "kundendaten";
        String userName = "root";
        String password = "";
        Connection con = null;

        try {
            Class.forName(driverName);
        }
        catch (ClassNotFoundException e) {
            System.out.println("driver not found");
        }

        try {
            con = DriverManager.getConnection(url + dbName, userName, password);
        }
        catch (SQLException se) {
            System.out.println(se);
        }


        ResultSet rs = null;
        PreparedStatement prest = null;

        try {
            String sql = "SELECT Bestellnr_pk, Name, Ort, Artikelnr_pk, Artikelname, DatumZeit" +
                         " FROM kunden k, bestellung b, bestellartikel ba, artikel a" +
                         " WHERE k.Kundennr_pk = ?" +
                         " AND k.Kundennr_pk = b.kundennr_fk" +
                         " AND b.Bestellnr_pk = ba.Bestellnr_fk" +
                         " AND a.Artikelnr_pk = ba.Artikelnr_fk";
            prest = con.prepareStatement(sql);

            // kundennummer die man ausliest
            prest.setInt(1,1);

            rs = prest.executeQuery();

        }
        catch (SQLException se){
            System.out.println(se + "1");
        }
}
```


----------



## demo-kind (16. Sep 2011)

hey bone2, vielen dank für die rasche antwort , werde den code heute noch testen, bin leider noch in der arbeit


----------



## r.w. (16. Sep 2011)

Die Zugriffsberechtigungen bei mySQL werden auf Webservern meist so konfiguriert, 
dass nur vom Server selbst (localhost) eine Verbindung aufgebaut werden kann. 

Ob das in Deinem Fall so ist, musst Du beim Admin bzw. dem Hoster erfragen.
Ist es so, bleibt die Möglichkeit, z.B. den indirekten Weg über PHP-Skripte zu gehen.

VG ROlf


----------



## TheRealSpikee (17. Sep 2011)

@bone
4406 ? Krasser Tippfehler : MySQL Port ist 3306


----------



## r.w. (17. Sep 2011)

TheRealSpikee hat gesagt.:


> @bone
> 4406 ? Krasser Tippfehler : MySQL Port ist 3306



Ist zwar der Default-Port, lokal kann man sich
MySQL aber auch ohne weiteres auf einen anderen,
freien Port legen. So kann man z.B. neben einem
bereits installierten, parallel noch eine MAMP-Testumgebung
installieren.


----------



## TheDarkRose (18. Sep 2011)

Ich würde aber immer einen WebService dazwischen legen und nie mit eine DB übers Internet direkt kommunizieren. Vorallem da die Verbindung bei MySQL so schön unverschlüsselt ist.


----------



## Jigga (27. Sep 2011)

ich hab das selbe vor 
und wollte mich jetzt eigentlich auch mit webservices auseinandersetzen (das thema erscjägt mich gerade irgendwie...). da ich dort aber etwas von "semi automatischen erstellen von java-klassen aus der WSDL datei" lese, wollte ich mal eben nachfragen:
werden diese Klassen dann auf dem Webspace erstellt?
Wenn ja: soweit ich weiß unterstützt sogut wie kein kostenloser webspace java,oder liege ich da falsch?
wenn jemand gute Grundlagen und Tutorials bezüglich des Themas hat,nehme ich es gerne entgegen...

PS: es heißt,dass ich die "Struktur" der Antwort in einem XML-Dokuemnt definiere: würde dies auch bei variablen ergebnissen funktionieren?


----------



## Marcinek (27. Sep 2011)

Hallo Jigga,

deine Frage wird sehr oft hier im Forum diskutiert und beantwortet. Bitte nutze die Suchfunktion.

Einen Thread dazu zu hijacken ist auch nicht korrekt. Bitte trennen.

Gruß,

Martin


----------



## Jigga (27. Sep 2011)

Oh,dachte das passt hier super rein,weil es zum teil auf webservices hinausläuft.

@topic: bei kostenlosem Webspace ist SOAP nicht verfügbar(soweit ich weiß). Ich weiß leider noch nicht inwieweit dies auch für RPC und REST gilt, aber dann bleibt einem ja leider nur noch das parsen von variablen. Dabei hat mir dieser Link sehr geholfen:
Developer's Guide - Wie man aus Java mit einem PHP-Script kommuniziert


----------



## _Andi91 (27. Sep 2011)

Jigga hat gesagt.:


> bei kostenlosem Webspace ist SOAP nicht verfügbar(soweit ich weiß)



Ich kenn einen free Hoster bei dem SOAP geht. 
Jedenfalls vor nem halbem Jahr gings noch...
Free Webspace mit PHP und MYSQL kostenlos | CwCity.de


----------



## Jigga (27. Sep 2011)

_Andi91 hat gesagt.:


> Ich kenn einen free Hoster bei dem SOAP geht.
> Jedenfalls vor nem halbem Jahr gings noch...
> Free Webspace mit PHP und MYSQL kostenlos | CwCity.de



na den werde ich dann aber auch gleich mal ausprobieren!danke


----------



## TheDarkRose (27. Sep 2011)

SOAP finde ich sowieso nicht ganz so toll. Da denke ich ist ein REST oder notfalls XML-RPC Interface besser.


----------

