Fragen und Antworten zu Blatt 6

Eine Frage

Frage:

Wie kann ich Daten in meine Tabellen laden?

Antwort: Es gibt zwei Möglichkeiten
  • mit SQL-INSERT - Statements
    INSERT INTO mytable VALUES(1, foo);
    diese können auch per JDBC aufgerufen werden.
  • wenn Sie mit dem Skript workondb an der Datenbank anmelden, können Sie mit dem Befehl
    LOAD DATA INFILE 'data.txt' INTO TABLE mytable;
    Daten aus einer Datei in die Tabelle laden. Dabei muss man folgendes Beachten:
    • Die Datei muss die selbe Struktur wie die Datenbank-Tabelle haben
    • Die Felder müssen mit Tabulator getrennt sein
    • Jede Zeile enthält einen Datensatz

Beispiel: Wurde eine Tabelle mit
CREATE TABLE mytable (eineZahl INTEGER, einString VARCHAR(40));
erzeugt, muss die passende Datei folgendermaßen aussehen:

1\tfoo
2\tbar
also in jeder Zeile befindet sich erst eine Zahl, dann folgt ein String, von der Zahl mit einem Tabulator getrennt.

Unter Windows ergibt sich folgendens Problem: Unter Windows werden Zeilen nicht nur mit "\n" abgeschlossen, sondern mit "\r\n". Um MySQL zu überreden, trotzdem die Datensätze aus der Datei einzulesen muss der LOAD DATA-Befehl um
LINES TERMINATED BY "\r\n"
ergänzt werden.

Eine Frage zu MySQL und Windows

Frage:

Ich würde anstatt über die Uni-Rechner zu arbeiten viel lieber mit meinem Notebook und Windows arbeiten... Hat irgendjemand Tipps für MySQL und Windows? z.B.:

  • Pakete
  • Einführungshilfen
  • Oberlächen- und Benutzertools
Meine bisherigen Versuche haben mich nicht weit gebracht.
Antwort: Eine Möglichkeit wäre, dass du dir einfach einen Apache & MySQL auf deinem Windows-System installierst. Das ist aber ein bißchen fummelig.

Apache unter Windows: http://httpd.apache.org/docs/1.3/windows.html
MySQL unter Windows: http://dev.mysql.com/downloads/mysql/5.0.html

Google mal nach "PHP MySQL Apache Windows" oder teilen davon, da finden sich sehr viele Anleitungen für eine Installation. Ggf. nur deutsche Seiten anzeigen lassen.
PHP würdest du für SEP natürlich nicht benötigen... :)

Eine sehr einfache Möglichkeit ist das XAMPP Paket (X=Windows/Linux, A=Apache, M=Mysql, P=PHP, P=Perl) von www.apachefriends.org. Damit kann man Apache und Mysql innerhalb weniger Minuten einsatzbereit haben, ohne viel Konfigurationsaufwand. Als Add-on ist ausserdem auch gleich der Tomcat verfügbar.

JARs und das setvars-skript

Frage: Kann jemand erklären, wie ich trotz der Variablen aus . /home/sep2006/software/install/setvars eine Klasse aus dem selben Ordner einbinden kann, also beispielsweise das verlangte Bat.class-Interface?
Antwort: Du musst per Hand den passenden Classpath setzen:
java -classpath /pfad/zum/interface:$CLASSPATH MeineKlasse
Dasselbe gilt auch für javac
Unter Unix (also Linux, BSD, Solaris) werden einzelne Einträge durch einen Doppelpunkt getrennt, unter Windows durch ein Semikolon (;).

Falls also das Interface sich im selben package wie die restlichen Quellen befinden und die class-files sich ebenfalls im selben Verzeichnis befinden musst Du als Classpath also .:$CLASSPATH angeben.