Hallo,
ich habe folgendes Problem. Ich habe einen JXTable (Problem besteht aber auch beim JTable) und eine Tabelle in einer Datenbank. In der Tabelle sind ca. 300.000 Datensätze.
Ich habe mir zum laden der Daten folgende Klasse erstellt:
Das Problem ist, das ich bei dieser Variante die Gesamte Tabelle in einen Vector überführe. Das ganze stößt dann bei 300.000 Datensätze an seine Grenzen (OutOfMemory).
Meine Idee ist nun z.B. immer nur maximal 10.000 Datensätze in einen Vector zu laden und die dem JTable bereitzustellen. Erst wenn der Benutzer darüber hinaus scrollt, werden die Daten von der DB nachgeladen.
Macht man das so?
Woher weiß ich von welcher bis welcher Zeile ich die Daten laden muss?
Der JTable ruft ja von sich aus die Funktion getCol auf. Die hat keinen Paramater?
Stehe hier auf den Schlauch.
Danke für Tips
ich habe folgendes Problem. Ich habe einen JXTable (Problem besteht aber auch beim JTable) und eine Tabelle in einer Datenbank. In der Tabelle sind ca. 300.000 Datensätze.
Ich habe mir zum laden der Daten folgende Klasse erstellt:
Code:
public class DatabaseTableModel extends DefaultTableModel {
private Vector col;
private Vector data;
public DatabaseTableModel(Database db, String tableName){
Hashtable hash = db.getTableData(tableName,protokoll);
col = (Vector)hash.get("COLUMN");
data = (Vector)hash.get("DATA");
setDataVector(data, col);
}
public Vector getCol(){
return col;
}
public Vector getData(){
return data;
}
}
Das Problem ist, das ich bei dieser Variante die Gesamte Tabelle in einen Vector überführe. Das ganze stößt dann bei 300.000 Datensätze an seine Grenzen (OutOfMemory).
Meine Idee ist nun z.B. immer nur maximal 10.000 Datensätze in einen Vector zu laden und die dem JTable bereitzustellen. Erst wenn der Benutzer darüber hinaus scrollt, werden die Daten von der DB nachgeladen.
Macht man das so?
Woher weiß ich von welcher bis welcher Zeile ich die Daten laden muss?
Der JTable ruft ja von sich aus die Funktion getCol auf. Die hat keinen Paramater?
Stehe hier auf den Schlauch.
Danke für Tips