# Tabelle updaten wenn ResultSet aus JDBC-Quelle



## schueric (18. Aug 2007)

Hallo,

ich habe zwar hier im Forum was zum Thema fireTableDataChanged und überhaupt zur JTable-Aktualisieungsproblematik  gefunden, aber ich konnte es nicht wirklich für mein aktuelles Problem umsetzen.

Ich habe eine Klasse DbInterface, die die Datenbankkommunikation übernimmt. D.h. alle UPDATEs, SELECTs via JDBC etc. werden nur in der Klasse durchgeführt.

Nun habe ich eine JTable dieser Art:


```
rsProjects = DbInterface.getAllProjects(Configurator.getSysUser());
model = new ScrollingResultSetTableModel(rsProjects);
table = new JTable(model);
table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
```

soweit so gut. Wenn ich nun einen Eintrag hinzufüge, oder eine Zeile lösche indem ich die Zeile auswähle und auf ein "löschen" Button drücke, wird über den ActionListener entsprechendes an die DbInterface-Klasse weitergegeben:


```
DbInterface.deleteProject(projectID);
model.fireTableDataChanged();
table.repaint();
```

Die Datenbank aktualisiert sich auch wie gewünscht, aber die TAbelle nicht. Nun gut, fireTableDataChanged setzt ja nur ein Event in die Welt dass es zu einem Update der Tabellen kam, also war meine Idee dass ich wohl noch einen Listener dieser Art brauche:


```
model.addTableModelListener(new TableModelListener() {
	public void tableChanged(TableModelEvent evt) {
		try {
			rsProjects...?
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
});
```

Ich habe hier allerdings keine geeigneten Methoden der ResultSet-Klasse gefunden die mir weiterhelfen können. Ich würde jedenfalls vermuten dass ich das Modell irgendwie dazu bringen muss die Daten neuzulesen. Any idea?


----------



## Guest (18. Aug 2007)

Warum verwendest du überhaupt ResultSets in einem TableModel, statt irgendeiner Projekt-Klasse?

Dein DbInterface sollte sowas liefern, dann hast du keine Probleme mit irgendwelchen Readonly-ResultSets.
	
	
	
	





```
List<Project> projektList = DbInterface.getAllProjects(Configurator.getSysUser());
```


----------



## schueric (19. Aug 2007)

Anonymous hat gesagt.:
			
		

> Warum verwendest du überhaupt ResultSets in einem TableModel, statt irgendeiner Projekt-Klasse?



ehrlich gesagt dachte ich "das macht man so"  Kenne mich aber noch nicht so gut aus mit Java von daher ist der Hinweis mit der Klasse auch nicht schlecht, das werde ich mal versuchen, wobei ich denke dass das zwar vielleicht besser Design ist aber das Problem ja an sich nicht löst. Naja wie dem auch sei, ich probiere es einfach mal aus, vielleicht klappts ja doch auf diesem Wege 

Danke


----------

