Mittwoch, 3. Oktober 2007

JDBC

1. Laden des Treibers:
Class.forName(TREIBER);

2. Verbindung aufbauen:
Connection c;
c = DriverManager.getConnection(URL);

3. Anweisung erzeugen:
Statement s = c.createStatement();

4. Ausführen von Select:
ResultSet rs;
rs = s.executeQuery(SQLSELECT);

5a. Ergebnismenge durchlaufen:
while(rs.next()){machwas};

5b. Prüfen, ob mindestens ein Treffer:
if (rs.next()) {}

5c. Ergebnis auslesen über Spaltenindex (ab 1) oder -Name
getAsciiStream()
getBoolean()
getDate()
...

6. Insert, Delete, Update:
int d = rs.executeUpdate(SQLANWEISUNG);

Threads

Objekt der Klasse Thread oder einer Subklasse.
D.h. eigene Klasse erweitert Thread oder implementiert Schnittstelle Runnable.
In beiden Fällen Methode run() implementieren:

1. Variante:
class MeinThread extends Thread{
public void run(){
//Threadimplementierung
}
}

Ausführung:
Thread meinThread = new MeinThread();
meinThread.start();

start() stößt Ausführung von run() an und kehrt sofort zum Aufruf zurück. Danach läuft also run() und Programm hinter start() parallel.

2. Variante:
class MeinThread implements Runnable{
public void run(){
//Threadinhalt
}
}

Aufruf:
Runnable meinTarget = new MeinThread();
Thread meinThread = new Thread(meinTarget);
meinThread.start();

Endlosschleife

while(true){
try{
...
break; //Unterbricht Schleife, wenn bisher keine Exception
}
catch{...}
}

Fehlerbehandlung

try{
...Code in der Ausnahme oder Fehler auftritt....
}
catch (ExceptionKlasse1 e1){
...Code zur Behandlung der ExceptionKlasse1...
e1.printStackTrace();
}
catch (ExceptionKlasse2 e2){
...Behandlung der ExceptionKlasse2...
}
finally{
...wird immer ausgeführt...
}

Samstag, 30. Juni 2007

Linux: fehlende Perl-Module nachinstallieren

perl -MCPAN -e shell
install fehlendes::Modul

Mittwoch, 27. Juni 2007

Java: Klasse enum nutzen (ab 1.5)

//Deklaration
public static enum Aufzaehlung {
   Erstens, Zweitens, Drittens
};


//Alle Elemente durchlaufen
for (Aufzaehlung az : Aufzaehlung.values()) {

  //Textausgabe (Erstens, Zweitens, Drittens)
  System.out.println(az.toString());


  //Nummerische Ausgabe (0, 1, 2)
  System.out.println(az.ordinal());
}