MySQL Datenbank in Swift verwenden?

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • MySQL Datenbank in Swift verwenden?

    Guten Tag liebe Community.
    Ich wollte mir mal Swift anschauen, und war total begeistert wie einfach & Simple diese Programmiersprache ist.

    Ich wollte eigentlich Wissen, wie ich mich mit einer MySQL Datenbank verbinden kann, da ich noch nie mit Obj-C oder sonstigem gearbeitet hatte. (PHP als ausnhame :))
    Könntet Ihr mir ev. einen Beispiel Code zu verfügung stellen?

    MfG.
  • Ist unklar, was Du meinst.
    1. app soll sich online mit MySQL-Datenbank verbinden: Das solltest Du nie direkt tun. Sondern immer nur über eine Serverseitige Anwendung, die bei einer korrekten Authentifizierung dir dann die Daten per XML oder JSON zurückgibt.
    oder
    2. app soll Daten lokal in einer MySQL-Datenbank speichern: Das kannst Du mit SQLite machen.

    Nachtrag: okay. Du meinst vermutlich 1., aber mit 2. kannst Du dann die Daten lokal speichern und eventuell nur die aktualisierten Items aus der MySQL ziehen.
  • entwickler schrieb:

    Ist unklar, was Du meinst.
    1. app soll sich online mit MySQL-Datenbank verbinden: Das solltest Du nie direkt tun. Sondern immer nur über eine Serverseitige Anwendung, die bei einer korrekten Authentifizierung dir dann die Daten per XML oder JSON zurückgibt.
    oder
    2. app soll Daten lokal in einer MySQL-Datenbank speichern: Das kannst Du mit SQLite machen.

    Nachtrag: okay. Du meinst vermutlich 1., aber mit 2. kannst Du dann die Daten lokal speichern und eventuell nur die aktualisierten Items aus der MySQL ziehen.

    Ich meine eher, 4 Textboxe:
    Host:
    User:
    Passwort:
    Datenbank
    1 Button -> Checkt Textboxe ab -> versucht zu connecten.
  • Madly schrieb:

    entwickler schrieb:

    Ist unklar, was Du meinst.
    1. app soll sich online mit MySQL-Datenbank verbinden: Das solltest Du nie direkt tun. Sondern immer nur über eine Serverseitige Anwendung, die bei einer korrekten Authentifizierung dir dann die Daten per XML oder JSON zurückgibt.
    oder
    2. app soll Daten lokal in einer MySQL-Datenbank speichern: Das kannst Du mit SQLite machen.

    Nachtrag: okay. Du meinst vermutlich 1., aber mit 2. kannst Du dann die Daten lokal speichern und eventuell nur die aktualisierten Items aus der MySQL ziehen.

    Ich meine eher, 4 Textboxe:
    Host:
    User:
    Passwort:
    Datenbank
    1 Button -> Checkt Textboxe ab -> versucht zu connecten.


    Der Vollständigkeit halber: Das ist dann die angesprochene Variante 1.
    Sicher hast Du dir den Link von MCDan schon angeguckt, dort wird mit Hilfe von PHP ein „JSON Objekt“ erzeugt.
  • Und wenn wir nicht von einer iphone App sprechen, sondern beispielsweise eine normale OS X Anwendung mit Swift erzeugen möchten, welche eine Datenbankverbindung erhalten soll? Würdet ihr das dann noch immer mittels JSON / XML Zwischenschnittstelle bauen oder gibt es da inzwischen besser Möglichkeiten für? Selbst unter Objective C gab es in dieser Hinsicht nichts Einheitliches :(

    Hat darüber hinaus jemand eventuell passende Links mit Beispielen für Anwendungsprogrammierungen mit Swift, also insbesondere eben nicht iPhone-Applikationen? Eine kleine Adressdatenbank oder ähnliches wäre zur Anschauung nicht schlecht :)
  • michaeljk schrieb:

    Und wenn wir nicht von einer iphone App sprechen, sondern beispielsweise eine normale OS X Anwendung mit Swift erzeugen möchten, welche eine Datenbankverbindung erhalten soll? Würdet ihr das dann noch immer mittels JSON / XML Zwischenschnittstelle bauen oder gibt es da inzwischen besser Möglichkeiten für? Selbst unter Objective C gab es in dieser Hinsicht nichts Einheitliches :(

    Hat darüber hinaus jemand eventuell passende Links mit Beispielen für Anwendungsprogrammierungen mit Swift, also insbesondere eben nicht iPhone-Applikationen? Eine kleine Adressdatenbank oder ähnliches wäre zur Anschauung nicht schlecht :)


    wenn die app nur für dich ist oder der benutzer die db, username und passwort angibt dann ist es ok.
    es ist aber nicht ok in einem app das du verteilst deinen server, db, username und pw anzugebn!
  • gritsch schrieb:


    wenn die app nur für dich ist oder der benutzer die db, username und passwort angibt dann ist es ok.
    es ist aber nicht ok in einem app das du verteilst deinen server, db, username und pw anzugebn!


    Das ist natürlich klar, zumal die Standard-Übertragung zum Server in diesem Fall dann unverschlüsselt erfolgt, was aus heutiger Sicht auch nicht mehr anzuraten ist. Mich wundert es nur, dass es unter OS X kaum Informationen zum Aufbau einer Applikation mit einer zentralen Datenbank gibt (z.B. einer Kundendatenbank auf welche mehrere Arbeitsplätze Zugriff haben). Wie realisiert ihr derzeit sowas? Nehmt ihr die C-Libs zu der entsprechenden Datenbankanwendung und baut euch da eure API drumherum, konvertiert ihr die Abfragen/Abfrageergebnisse in XML/JSON und nutzt dazwischen ein seperates Dienstprogramm auf dem Server (z.B. PHP-Script, welches die Daten umwandelt), lasst ihr ganz die Finger von OS X Entwicklung wenn es um Datenbankanwendungen geht und programmiert das direkt mittels HTML zum Abruf per Browser, ... ? Die Übergabe der Daten per JSON ist natürlich vorteilhaft, wenn diese später sowohl am Desktop als auch von mobilen Apps verwendet werden sollen. Aber aus Performance-Sicht natürlich absolut unvorteilhaft.
  • michaeljk schrieb:

    gritsch schrieb:


    wenn die app nur für dich ist oder der benutzer die db, username und passwort angibt dann ist es ok.
    es ist aber nicht ok in einem app das du verteilst deinen server, db, username und pw anzugebn!


    Das ist natürlich klar, zumal die Standard-Übertragung zum Server in diesem Fall dann unverschlüsselt erfolgt, was aus heutiger Sicht auch nicht mehr anzuraten ist. Mich wundert es nur, dass es unter OS X kaum Informationen zum Aufbau einer Applikation mit einer zentralen Datenbank gibt (z.B. einer Kundendatenbank auf welche mehrere Arbeitsplätze Zugriff haben). Wie realisiert ihr derzeit sowas? Nehmt ihr die C-Libs zu der entsprechenden Datenbankanwendung und baut euch da eure API drumherum, konvertiert ihr die Abfragen/Abfrageergebnisse in XML/JSON und nutzt dazwischen ein seperates Dienstprogramm auf dem Server (z.B. PHP-Script, welches die Daten umwandelt), lasst ihr ganz die Finger von OS X Entwicklung wenn es um Datenbankanwendungen geht und programmiert das direkt mittels HTML zum Abruf per Browser, ... ? Die Übergabe der Daten per JSON ist natürlich vorteilhaft, wenn diese später sowohl am Desktop als auch von mobilen Apps verwendet werden sollen. Aber aus Performance-Sicht natürlich absolut unvorteilhaft.


    nicht nur weil die daten unverschlüsselt übertragen werden könnten (man kann auch SSL verwenden) sondern weil die credentials aus der app rausgeholt werden können und dann jeder auch ohne die app auf die DB zugreifen kann.

    die frage ist nicht wie man das unter Mac OS macht sondern wie man es generell macht.
    will man eine eigene DB verwenden dann steht man eben vor der entscheidung wie man es macht.
    auch wenn die DB im moment der konzeption im firmennetz läuft, kann man eventuell mit geringem aufwand ein programm so entwickeln dass die DB auch auf einem öffentlichen server liegen könnte oder es einen zugang zum internen DB server von ausen gib (ohne VPN).

    die C-libs an sich sind ja nicht schlecht. wenn man damit nicht umzugehen weiß dann eben nicht.
    es gibt aber für die meisten DB-systeme auch Obj-C wrapper (da es aber nur wrapper sind kann man doch auch gleich die C-libs verwenden ohne sich auf irgendwelchen fremdcode verlassen - den man besser nicht ansieht sonst kann man meist nicht mehr schlafen wenn man sowas in seinen apps in freier wildbahn weiß)...
  • Ich verstehe die Frage nicht so ganz. Wie machen es denn andere Systeme/Sprache als OSX. Mir scheint ja da gibt es sowas wie einen Standrad deb OSX nicht hat wenn ich Dich richtig interpretiere oder? Welcher soll das sein?

    Eine Kommunikation mit einer Datenbank via Internet sollte immer über einen Webservice und im optimalen Fall noch über einen Proxi stattfinden. Bei sensibelen Daten (Dazu gehört schon eine einfache Adress-DB weil dort Personendaten verschickt werden) sollte man zudem SSL verwenden oder wenn es noch sicherer sein soll über ein VPN gehen. Das ist aber auf jedem System/OS gleich.

    Was der Webservice letztendlich anbietet hängt hlat stark von den Daten ab die benötigt werden. Das kann einfaches XML sein, genauso wie JSON oder für größere Anwendungen dann REST etc p.p. Oder man baut sogar was ganz eigenes wenn man unbedingt will. Auch hier erkenne ich keinen Unterscheid zwischen verschiendenen Systmen/OS.

    Auf was genau soll Deine Frage also abziehlen?

    Gruß

    Claus
    2 Stunden Try & Error erspart 10 Minuten Handbuchlesen.

    Pre-Kaffee-Posts sind mit Vorsicht zu geniessen :)