Open Source im professionellen Einsatz

Richtig verbunden

Das Programm aus Listing 2 ist weitestgehend selbsterklärend: Es stellt zunächst eine Verbindung zu einer existierenden Datenbank her. Dazu sind grundlegende Daten wie Host des Datenbankservers, Name und Passwort eines lokalen Nutzers sowie der Name der Datenbank erforderlich. Auf den Code zum Öffnen einer Verbindung (Zeilen 9 bis 13) folgt ein SQL-Befehl für das Auslesen eines Datensatzes (Zeile 17). Im Beispiel sucht er nach den Vor- und Nachnamen von Angestellten.

Eine Testdatenbank erzeugt der Datenbanknutzer »root« nach Aufruf von »mysql -u root -p« in der MySQL-Shell:

create database if not exists test;
grant all privileges on test.* to 'testuser'@'localhost' identified by  'testuserpassword'; 

Die Tabellen legt nach dem Neustart der MySQL-Shell ein nicht privilegierter Benutzer mit »mysql -u testuser -p« an:

create table angestellter(vorname varchar(32), nachname varchar(32)); 

Die Tabelle »angestellter«, lässt sich nun mit Vor- und Nachnamen füllen:

insert into angestellter (vorname, nachname) values("Haenschen", "Klein"); 
insert into angestellter (vorname, nachname) values("Gretel", "Klein"); 
insert into angestellter (vorname, nachname) values("boese", "Hexe"); 

Der Aufruf des Programms aus Listing 2 liest dann die Tabelle aus. Eine passende Reader-Klasse (Zeile 19) iteriert nun über alle gefundenen Datensätze und gibt sie nacheinander aus:

mono mysql.exe
Haenschen Klein
Gretel Klein
boese Hexe

Als Aufräumarbeit folgt zum Schluss das Schließen der Datenbankverbindung (Zeilen 26 bis 28).

Mit Links

Das Akronym LINQ steht für Language Integrated Query. LINQ vereinheitlicht Abfragen unterschiedlichster Datenquellen unter einem gemeinsamen API. Dazu gehören auch die gerade vorgestellten Datencontainer. Der Zugriff erfolgt mit einer SQL-ähnlichen Syntax. So wählt Listing 3 aus »zufallsZahlen« vom Typ »List<double>« Werte größer »5.5« aus (»where-Klausel«, Zeile 13).

Neben der speziellen Syntax des LINQ-Statements fällt in diesem Listing eine weitere Besonderheit auf: die implizit typisierten Variablen. Den Typ von »highnumbers« legt erst der Compiler fest. Dies trägt weiter dazu bei, die Syntax der Abfrage verschiedener Datenquellen zu vereinheitlichen.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 3 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Als digitales Abo

Als PDF im Abo bestellen

comments powered by Disqus

Ausgabe 07/2013

Preis € 6,40

Insecurity Bulletin

Insecurity Bulletin

Im Insecurity Bulletin widmet sich Mark Vogelsberger aktuellen Sicherheitslücken sowie Hintergründen und Security-Grundlagen. mehr...

Linux-Magazin auf Facebook