Datenbankanbindung MySQL Datenbank ohne Internet

  • Hallo und guten Tag,
    Android ist für mich nun fremdes Land. Aber ein Kunde möchte Informationen von seiner Produktionsdatenbank auf sein Android Handy und Tablet haben. Ich habe das Inet durchforscht und einiges gefunden. Natürlich ist es immer besser keinen direkten Zugriff auf die Datenbank zu zu lassen. Aber die Datenbank ist nur im lokalen Netz zu erreichen und das soll auch so bleiben. ich programmiere hauptsächlich in Delphi / c#. Java ist neuland. :O B-)


    Nun meine Frage wie soll ich den Zugriff auf die Daten machen?? Direkt vom Gerät aus über die java MySql Connectoren oder gibt es noch eine andere Methode. Mit php usw. ist es nicht möglich, da eine reine Windowslandschaft dahinter steckt. ?(

  • Hallo. :)


    Also zunächst mal kann mittlerweile auch Windows einen HTTP Server zur Verfügung stellen, der die Verbindung zur Datenbank aufbaut.
    Die können tatsächlich auch PHP. Oder ASP.NET. Oder JSP.
    Der Weg über eine Ansteuerung via HTTP ist also nicht nur möglich sondern nach wie vor wünschenswert. ;)


    Wenn der Kunde Informationen seiner Produktionsdatenbank auf sein Android Gerät haben möchte, dann möchte er das sicherlich nicht nur in seinem eigenen Intranet. Er möchte sicherlich irgendwelchen Businesskollegen beim Meeting oder auf einer Messe sein Endgerät unter die Nase halten und sagen können 'Guck mal hier, seit wir hier sitzen und reden haben meine Leute wieder 200 Stück produziert!'
    Wenn er es noch nicht möchte, wird er das sicherlich möchten, sobald man ihm das vorschlägt. Oder er kommt in der Beta-Phase selbst drauf. Wenn es keine Beta-Phase gibt, kommt er spätestens drei Tage nach Release selbst drauf.
    Und da ist es nicht nur wesentlich sicherer, sondern auch wesentlich einfacher, einen vom Internet erreichbaren Webserver mit der im Intranet befindlichen Datenbank kommunizieren zu lassen.


    Ansonsten führt kein Weg an die MySQL Connectoren von Android vorbei. Am Besten lagerst Du die in einen Content Provider aus.(Das Schöne am Content Provider ist, dass wenn Du plötzlich doch statt mit MySQL mit einem Webbackend connecten willst, Du nur den Content Provider austauschen musst.)


    Fertige MySQL Connectoren gibt es meines Wissens für Android nicht. (Eben weil es nicht der Weg ist, auf dem man so etwas realisiert.)
    Du wirst also um eine Eigenimplementierung nicht herum kommen. Die meisten Java MySQL Connectoren dürften so ohne Weiteres nicht funktionieren, da Android nur einen gewissen Teil des JDK abbildet. Verlass Dich also ruhig darauf, dass für die Java MySQL Connectoren mindestens eine javainterne Klasse, die auf dem Desktop immer vorhanden ist, fehlen wird. ;)

    Je mehr Käse, desto mehr Löcher.
    Je mehr Löcher, desto weniger Käse.
    Daraus folgt: je mehr Käse, desto weniger Käse.


    »Dies ist ein Forum. Schreibt Eure Fragen in das Forum, nicht per PN!«

  • Je nach Anforderungskatalog wäre eine denkbare Alternative eine Art Offline-Sync:
    ist das Gerät in der Firma, dann wird eine Sync-Applikation (unter Windows) gestartet, die alle benötigte aus eurer MySQL DB liest und daraus eine SQLite DB erstellt; diese wird dann auf das Gerät übertragen (.exe -> WLAN -> Deine App, oder .exe -> adb -> Gerät).
    Wird nur lesender Zugriff benötigt, dann bist du hier fertig, soll die App auch Daten erfassen/ändern/löschen können, dann muss eine Sync.exe halt auch aus der SQLite lesen und in die MySQL schreiben können.


    Die Vor- und Nachteile dieses Verfahrens sind offensichtlich, und je nach Pflichtenheft kommt diese Variante vielleicht gar nicht in Frage (etwa wenn der von Marco beschriebene Echtzeit-Zugriff gegeben sein muss)

  • Danke für Eure antworten. Das mit dem WebServer ist schon gut, aber mit produktionsdaten eines Konterns im Internet. Aber eine andere Idee wäre ein Client / Server Anwendung. Aber das habe ich mit Android auch noch nicht gemacht. :P

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!