SQLite mit DefaultTableModel synchronisieren

huckleberry

Bekanntes Mitglied
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
Java:
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
 
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?
 
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:
Java:
/*
 * 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?
 
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)
 
Mach dir erstmal eine Marker-Klasse.
Is schon fertig..

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
 
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.
 

Zurück
Oben