====== 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."); }