Android Datenbankverbindung

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von newyork, 30. März 2014 .

Schlagworte:
  1. 30. März 2014
    Moin Leute,

    ich hab vor eine Android App zu entwickeln, welche sich zu einer DB verbindet und damit entsprechend arbeiten kann(Abfragen und Ändern der Daten).
    Hab als erstes an SQLite gedacht, da SQLite ja toll mit Android funktionieren soll. Ich hab allerdings das "Problem" das ich eine zentrale Datenbank haben will, welche dann von z.B. 10 Benutzern an 10 Geräten bearbeitet werden soll und SQLite legt die Datenbank ja lokal an. Eigentlich wollte ich dann auf MySQL umsteigen, dann habe ich vom ContentProvider für SQLite gelesen, habe bislang aber nicht vernünftig rausfinden können ob der ContentProvider auch nur lokal(Beispiel Kontaktdaten) zur Verfügung stellt, oder ob ich damit entfernt auf eine zentrale DB zugreifen kann. SQLite ist ja an sich keine Server/Client Datenbank.

    Hat jemand eine Lösung parat wie ich das ganze mit SQLite umsetzen könnte, oder muss/soll ich auf MySQL umsteigen?

    Gruß

    nY
     
  2. 30. März 2014
    AW: Android Datenbankverbindung

    Vorweg: Ich habe noch keine Smartphone Apps entwickelt.
    Wenn du über verschiedene Geräte auf die gleiche Datenbank zugreifen willst, würde ich diese nicht direkt anbinden (egal welches DBMS). Ich würde einen Zentralen Server aufsetzten und den Zugriff via HTTP(s) und nem PHP/Pyhton/Ruby whatever Skript lösen. So hast du wesentlich mehr Kontrolle was den Zugriff anbelangt und kannst von vornherein ggf. schadhafte Abfragen abfangen.
     
  3. 30. März 2014
    AW: Android Datenbankverbindung

    Wie wäre denn der Aufwand wenn ich PHP als Schnittstelle zwischen Android und dem Server nehmen würde?
    Mit der Android Entwicklung und Java an sich kenn ich mich aus, aber PHP Kenntnisse sind extrem minimal.
     
  4. 30. März 2014
    AW: Android Datenbankverbindung

    Das kommt wohl darauf an wie gut du dich in andere Sprachen einarbeiten kannst. Mein PHP ist auch nicht sonderlich, aber ich würde jetzt mal nen Nachmittag für rudimentäre Funktionen ansetzten. Gibt ja genug via Google zu finden.
    Mehr als Spekulation und Kaffeesatzlesen ist das aber nicht. Aufwandsabschätzung ist eine Wissenschaft für sich.
     
  5. 30. März 2014
    AW: Android Datenbankverbindung

    Wie wäre es denn dann mit einem Java Webservice?
    Das braucht dann allerdings ein bisschen mehr Infrastruktur (zusätzlich z.b. einen tomcat) als eine reine PHP Geschichte.

    Hier mal ein Tutorial dazu: REST with Java (JAX-RS) using Jersey - Tutorial
     
  6. 31. März 2014
    AW: Android Datenbankverbindung

    Also an sich hab ich nicht wirklich ein Problem damit andere Sprachen zu lernen, mir gehts mehr um die Umsetzung an sich.
    Mein Projekt besteht aus Datenbank + Android + GPS. Wenn ich PHP als Schnittstelle zwischen der DB und der Android App benutze ist das für mich irgendwie zuviel drumherum, dann würde die Android app ja quasi nur aus Design + Aufruf der PHP Scripts bestehen und ich hätte es gerne etwas "kompakter" im Gesamten, also das Quasi die Hauptfunktion in der App umgesetzt wird und die Daten in der DB gespeichert sind...

    Hab mir das mit dem REST mal angeschaut, ich denke das könnte irgendwie den Rahmen des "kleinen" Projekts sprengen.

    Habe nochmal etwas über Funktion und Struktur der App nachgedacht, 95% der Daten aus der DB sind fix, werden also nicht geändert, es gibt momentan nur eine Variable die vom Benutzer per App eingetragen bzw. geändert werden kann.

    Was haltet ihr von folgendem Lösungsansatz?:

    -App starten und Werte werden von der MySQL DB geholt(meinent wegen PHP oder andere Skriptsprache wie Ruby, Python...)
    -Daten werden lokal in einer SQLight DB gespeichert(spart extrem Traffic für zukünftige Nutzung der App)
    -Beim erneuten Starten der App werden GPS koordinaten lokalisiert und eine Abfrage der naheliegensten Orte geschieht lokal mit der SQLight DB

    Bleibt nurnoch die Umsetzung der Änderung der einen Variable, entweder wird diese nach Änderung lokal in der SQLight DB gespeichert und direkt darauf wird die SQLight DB mit der MySQL DB verglichen(bzw. nur die variable wird verglichen) und entsprechend geändert falls das möglich ist. Oder die Änderung geschieht mit JDBC von der App aus direkt auf der MySQL Datenbank und beim nächsten Starten der App wird geprüft ob sich Daten geändert haben und diese werden dann neu von der MySQL DB geholt und die vorhandene SQLight DB wird aktualisiert.

    Wobei eine direkte Verindung bzw ein direktes Arbeiten des Benutzers auf der Datenbank ja nicht zu empfehlen wäre, wobei ich momentan nicht weiß ob JDBC da eine Lösung mitliefert.
     
  7. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.