User Tools

Site Tools


datenbank

Java - Datenbank

Die Datenbank sqlite3 erfreut sich wegen ihrer Einfachheit (keine Konfiguration) großer Beliebtheit. Mit Java kann darauf einfach zugegriffen werden. Benötigt wird die Datei sqlitejdbc-v056.jar.

Mit folgendem Befehl kann dann ein Programm SqliteDemo.java im Ordner ~/java/sqlite gestartet werden:

java -classpath /home/walter/java/sqlite:./sqlitejdbc-v056.jar SqliteDemo

Benutzung

Für die Nutzung benötigt man Instanzen von Connection und Statement, die man am besten als Attribute deklariert. Damit kann dann eine Verbindung erstellt werden:

// Attribute
private String dbName;   // Datenbankname
private Connection conn; // DriverManager.getConnection("jdbc:sqlite:test.db");
private Statement stat;  // conn.createStatement();

Verbindung zur Datenbank herstellen:

// Mit der Datenbank verbinden
public boolean connect() {
    try {
        Class.forName("org.sqlite.JDBC");
        if ( conn != null) conn.close();
        conn = DriverManager.getConnection("jdbc:sqlite:"+dbName);
        stat = conn.createStatement();
        return true;
    }
    catch (Exception e) { return false; }
}
 
// Datenbank schließen
public boolean close() {
    try {
        if ( conn != null) conn.close();
        return true;
    }
    catch (Exception e) { return false; }
}

Ausgabe einer Vorhandenen Tabelle:

// Abfrage per sql-String
// Im Beispiel: Tabelle mit zwei Spalten name/occupation
public void query(String sql) {
    try {
        ResultSet rs = stat.executeQuery(sql);
        while (rs.next())
            System.out.print  ( rs.getString("name") + ", " + rs.getString("occupation"));
        rs.close();
    }
    catch (Exception e) {
        System.out.println("Die Abfrage konnte nicht durchgeführt werden.\n" + e.getMessage());
    }
}

Update einer Tabelle per sql-String (Delete, Insert, etc.)

// Update einer Tabelle per sql-Befehl: delete, insert, ...
public void update(String sql) {
    try {
        int anzahl = stat.executeUpdate(sql);
        System.out.println("Es wurden "+anzahl + " Zeilen geändert/gelöscht.");
    }
    catch (Exception e) {
        System.out.println("Die Aktualisierung konnte nicht durchgeführt werden. \n" + e.getMessage());
    }
}

Demo-Aufruf:

// Testprogramm
public static void main(String[] args) {
    SqliteDemo sqlite = new SqliteDemo("test.db");
    if (sqlite.connect()) {
        sqlite.query("SELECT * FROM people ORDER BY name");
        sqlite.update("DELETE FROM people WHERE name='Bauer'");
        sqlite.update("INSERT INTO people VALUES ('Schmidt', 'Bankier')");
        sqlite.close();
    }
    else
        System.out.println("Fehler beim Herstellen der Verbindung.");
}
datenbank.txt · Last modified: 2024/03/11 10:35 by walter