# SQLite mit DefaultTableModel synchronisieren



## huckleberry (3. Apr 2012)

Hallo, 

wie man hier sehen kann, benötige ich eine Datenbank. Ich baue grad eine SQLite DB auf, wo ich dann die Attribute meiner Marker Klasse ablege.. 

Frage: Kann man diese sql 
	
	
	
	





```
Connection conn = DriverManager.getConnection("jdbc:sqlite:myMarkers.db")
```
 mit einer *DefaultTableModel* (und damit mit einer *JTable*) synchronisieren, sodass immer der aktuelle ResultSet angezeigt wird zum Beispiel....

??

Vielen Dank.. 

MfG Huck


----------



## tfa (3. Apr 2012)

Ich seh da kein SQL, sondern nur die Erzeugung einer DB-Connection über DriverManager.
Wenn du den Inhalt einer DB-Tabelle in einem JTable anzeigen willst, kannst du das natürlich programmieren. Oder wie war die Frage?


----------



## huckleberry (3. Apr 2012)

tfa hat gesagt.:


> Ich seh da kein SQL, sondern nur die Erzeugung einer DB-Connection über DriverManager.


Das sollte auch nur ein Ausschnitt sein. Die SQL habe ich schon angelegt und mit Beispielen befüllt:

```
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package testprintblogs;

import java.sql.*;

public class TestPrintBlogs
{
  public static void main(String[] args) throws Exception
  {
    Class.forName("org.sqlite.JDBC");
        try (Connection conn = DriverManager.getConnection("jdbc:sqlite:myMarker.db")) {
            Statement stat = conn.createStatement();
            stat.executeUpdate("drop table if exists marker;");
            stat.executeUpdate("create table marker (marker_id, marker_type, marker_gen, marker_exp, marker_prio, marker_mm, marker_event, marker_lr);");
			
            PreparedStatement prep = conn.prepareStatement("insert into marker values (?, ?, ?, ?, ?, ?, ?, ?);");
         
            prep.setString(1, "1234");
            prep.setString(2, "M1");
            prep.setString(3, "24.12.2011");
            prep.setString(4, "25.12.2012");
            prep.setString(5, "0");
            prep.addBatch();
         
            prep.setString(1, "2345");
            prep.setString(2, "M1");
            prep.setString(3, "24.10.2011");
            prep.setString(4, "25.11.2012");
            prep.setString(5, "1");
            prep.addBatch();
         
            prep.setString(1, "3456");
            prep.setString(2, "M2");
            prep.setString(3, "24.08.2010");
            prep.setString(4, "25.09.2011");
            prep.setString(5, "0");
            prep.addBatch();
         
            conn.setAutoCommit(false);
            prep.executeBatch();
            conn.setAutoCommit(true);
         
            String sql = "SELECT * FROM marker WHERE marker_id = ?;";
            prep = conn.prepareStatement(sql);
            prep.setString(1,"3456");
            ResultSet rs1 = prep.executeQuery();
            
            while (rs1.next())
            {
              System.out.println("marker_ID = " + rs1.getString("marker_id"));
              System.out.println("marker_TYPE = " + rs1.getString("marker_type"));
            }
            rs1.close();
        }
  }
}
```

Wie zeige ich den aktuellen Inhalt der myMarker.db in meiner JTable am besten?


----------



## tfa (3. Apr 2012)

> Wie zeige ich den aktuellen Inhalt der myMarker.db in meiner JTable am besten?


Mach dir erstmal eine Marker-Klasse. Lies die Tabelle aus in eine Liste von Marker-Objekten. Die kannst du dann über ein eigenes Table-Model in einer Tabelle anzeigen. Siehe FAQ-Eintrag: http://www.java-forum.org/bilder-gui-damit-zusammenhaengt/7036-jtable-teil-1-einfuehrung.html
Oder das Tutorial von Oracle: How to Use Tables (The Java™ Tutorials > Creating a GUI With JFC/Swing > Using Swing Components)


----------



## huckleberry (4. Apr 2012)

tfa hat gesagt.:


> Mach dir erstmal eine Marker-Klasse.


Is schon fertig..



tfa hat gesagt.:


> Lies die Tabelle aus in eine Liste von Marker-Objekten. Die kannst du dann über ein eigenes Table-Model in einer Tabelle anzeigen.


Also soll ich die Einträge aus der SQLite Datenbank in eine List/Set<Marker> und diese dann mit dem TableModell verknüpfen.. Kann ich dann die SQLDatenbak nicht gänzlich sparen, wenn alles sowieso über eine Liste geht.. ???:L


----------



## tfa (4. Apr 2012)

> Kann ich dann die SQLDatenbak nicht gänzlich sparen, wenn alles sowieso über eine Liste geht..


Möchtest du, dass die Daten erhalten bleiben, wenn man das Programm beendet und den Computer ausschaltet? Wenn nein,. ist eine DB eigentlich nicht nötig.


----------

