Datenbank-Zugriff mit Matlab
- Database-Toolbox:
- Zugriff zu SQL- und einigen NoSQL-Datenbanken
- grundsätzlich Zugriff möglich über ODBC- oder
JDBC-Treiber
- für MySQL direkt mit "MySQL Native Interface"
- Verbindung zur Datenbank aufnehmen:
- geeignete Options-Struktur erzeugen
- opts =
databaseConnectionOptions("native", "MySQL");
- Daten in Options-Struktur speichern
- opts = setoptions(opts,
"DataSourceName", mySource, ...
"DatabaseName", myDB, "Server", myServer,
"PortNumber", myPort);
- Parameter
-
Variable |
Bedeutung |
Beispielwert |
mySource
|
selbstgewählter Name
|
"MySQLDataSource"
|
myDB
|
ausgewählte Datenbank
|
"literature"
|
myServer
|
Adresse/IP des Servers
|
"127.0.0.1"
|
myPort
|
Port des Servers
|
3306
|
- Testen der Verbindung (wichtig!)
- [dbOk, message] =
testConnection(opts, myUser, myPass);
if ~dbOk
fprintf("Connection to database '%s' failed!\n", myDB)
fprintf("message: %s\n", message)
end
- mit Benutzername myUser
und Passwort myPass
- im Kurs: myUser = "phwt",
myPass = "strenggeheim"
- bei Erfolg Daten speichern mit
- Verbindung öffnen
- conn = mysql(mySource, myUser,
myPass);
- nach Benutzen der Datenbank wieder schließen
- close(conn);
- Datenaustausch zwischen Matlab und Datenbank:
- SQL-Kommando als String erzeugen, z.B.
- sqlquery = "SELECT word FROM
Keyword";
- Kommando absetzen
- data = fetch(conn, sqlquery);
- data ist eine Tabelle mit
den Ergebnis-Daten
- auf Spalten über Namen zugreifen
- >> data.word
"simulation"
"thermofluid"
"bond graphs"
"parallel computing"
"robotics"
"artificial intelligence"
"discrete events"
"benchmark"
- bei SQL-Kommando ohne Rückgabewert (z. B. INSERT)
- Beispiel-Anwendung showPapers
:
- Aufruf
- showPapers(keyword)
- liefert übersichtliche Liste der Paper zum
Schlüsselwort
- Beispiel
- >>
showPapers("bond graphs")
D.Zimmer:
A Modelica Library for MultiBond Graphs and its
Application in 3D-Mechanics
D.Zimmer, F.Cellier:
The Modelica Multi-bond Graph Library
- Hilfsfunktion getAuthorString(conn,
id)
- gibt die formatierte Liste der Autoren zurück
- verkürzt Vornamen auf Anfangsbuchstaben mit extract
- hängt alle Namen hintereinander, einschließlich
Komma
- entfernt überflüssiges Komma am Ende mit extractBefore
- Aufgaben