Zugriff auf Tabelle in Microsoft SQL-Datenbank im Intranet

  • Hallo,


    ich hoffe, ich habe ein relativ leicht zu lösendes Problem. In meinem Heimnetzwerk läuft ein Microsoft SQL-Server mit diversen Tabellen. Nun möchte ich eine simple App schreiben, mit der ich per WLAN im Intranet auf diese Tabellen lesend/schreiben zugreifen kann. Ein Zugriff von außen (Internet) ist nicht vorgesehen.


    Meine Fragen wären:
    1. Wie stelle ich die Verbindung zur MSSQL-Datenbank her und
    2. Wie befüllt man seine Android-Tabellen mit den Inhalten der Datenbank und umgekehrt...?


    Java-Grundkenntnisse und erste Erfahrungen mit Android-Programmierung sind zwar vorhanden, dennoch bitte ich um anfängergeeignete Antworten ;)


    Vielen Dank im Voraus!


    Marco

  • Also als Erstes solltest du wissen, dass man eine Datenbank eigentlich nie direkt ansprechen sollte.
    Wenn du dies trotzdem tun möchtest, so müsstest du dir die entsprechenden Java Lib herunterladen bzw. über gradle einbinden. In dem Falle ist das jtds.
    Wenn du diese Library dann "importiert" hast in deinem Projekt, dann kannst du dich mit der Datenbank darüber verbinden.
    Wie man eine Verbindung herstellst, erfährst du hier.
    Hoffe es ist so beschrieben, wie du es haben wolltest.

    MfG,
    Christopher


    Eine gewisses Maß an Freundlichkeit kann man auch von Menschen im Internet erwarten.
    Das Forum basiert komplett auf der Freiwilligkeit ihrer Nutzer und diese sollen sich wohlfühlen! Daher seid bitte freundlich. Danke

  • Vielen Dank erstmal für Deine Antwort, das bringt mich schonmal etwas weiter! Trotzdem bleiben noch einige Unsicherheiten:


    1) Was spricht gegen das direkte Ansprechen der Datenbank? Greifen meine stationären Windows-PCs nicht auf gleiche Weise auf die Datenbank zu oder inwiefern ist das in diesem Fall anders?


    2) Wie sollte man von Android aus auf eine MS SQL-Datenbank zugriefen? Am besten mit einem kleinen Beispiel oder einem Link, wo das verständlich durchgekaut wird ;) Bin, wie gesagt, noch sehr am Anfang in Sachen Programmierung...


    3) Meine zweite Frage aus meinem ursprünglichen Posting ist mir auch noch nicht ganz klar. Kann mir hier jemand vielleicht ein Beispiel zeigen, wie ich den Inhalt einer Datenbank in meiner App präsentiere?

  • 1) Das hast sicherheitstechnische Aspekte. Es ist sobald es über das Internet geht nicht mehr ausreichend. Deswegen auch eigentlich. Du musst sonst sicherstellen, dass nur im richtigen Netzwerk, welches gut geschützt sein sollte, die App die Datenbank abfragt. Deswegen nimmt man oft eine Middleware wie z.B. eine Rest-Api mit Authentifizierung.


    2) In meinem Link von oben siehst du im Prinzip ein Beispiel, wo direkt auf eine Datenbank zugegriffen und alle Tables ausgelesen werden. Diese landen dann in einem ResultSet, welches man durchiterieren kann. Solltest du noch ganz am Anfang sein, dann versuche lieber erstmal mit Java alles benötigte zu verwirklichen und dir das über die Konsole auszugeben.


    3) Da helfen grundsätzlich Adapter für ein RecyclerView. Ein gutes kurzes Tutorial findest du Hier. ListViews würde ich nicht empfehlen, da sie bei großen Datenmengen, was bei Datenbanken ja durchaus passieren kann, effizienter sind.

    MfG,
    Christopher


    Eine gewisses Maß an Freundlichkeit kann man auch von Menschen im Internet erwarten.
    Das Forum basiert komplett auf der Freiwilligkeit ihrer Nutzer und diese sollen sich wohlfühlen! Daher seid bitte freundlich. Danke

  • 1. warum Microsoft SQL irgs, sinvoller wäre da ein mysql server und je nach anwendung vielleicht sogar nosql.
    2. Setze eine applikation vor die datenbank (auf dem selben pc) und deine androidapp kommuniziert aus sicherheitsgründen nur über diese applikation die vor die datenbank geschalten ist. Nur die applikation darf dann aus der Datenbank lesen und reinschreiben.
    3. Warum möchtest du dinge die bereits in deiner SQL Datenbank auf dem PC existieren, nochmal auf deinem android gerät speichern? Wenn du die app eh nur nutzen können willst wenn du im netzwerk verbunden bist, macht es doch sinn, gleich die werte aus der remote datenbank zu nutzen, ohne sie zwischen zu speichern.
    4. Falls du die Daten aus Caching gründen doch zwischenspeichern willst, holst du dir die Daten einfach aus deiner Remote Datenbank und speicherst sie in die zu deiner app gehörigen SQLite datenbank. Dazu findest du mit google sehr viel tutorials.

Jetzt mitmachen!

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