Home
/
JavaForum
/
JDBC
Infos
|
Features
|
Gold-Edition
|
Kundenservice
java
Übersicht
Forum
-
Beginner
-
Java allgemein
-
JDBC
-
JNI
-
Networking
-
Online-Ressourcen
-
Swing + AWT
-
XML
-
Meckerecke
Mitglieder
LOGIN
User oder E-Mail
Passwort
·
Passwort vergessen
·
Kostenlos anmelden
Information
Demo
Features
Im Vergleich
Anmeldung
SUCHE
Beiträge, Foren oder Verfasser finden:
Kundenservice
Impressum
Datenschutz
AGB
Status
5.148 User online
1 User eingeloggt
Beiträge
Beginner
Java allgemein
JDBC
JNI
Networking
Online-Ressourcen
Swing + AWT
XML
Meckerecke
Antworten
Neuer Beitrag
Gesamtdarstellung
Detaildarstellung
Einzeldarstellung
Threaddarstellung
Beitrag 88 von 277 (32%)
Autor
mbertholl
Datum
30.09.03, 11:16
Betreff
mysqldb in jtable - schnelle Antwort wäre toll
Hallo für eine Demo- Anwendung habe ich folgendes Beipiel aus Core Java 2 implemntiert:
//Zwei Ableitungen von Tablemodell - geht bis zu
----------------------
----------------------
abstract class ResultSetTableModel extends AbstractTableModel
{
/**
Konstruiert das Tabellenmodell.
@param aResultSet Anzuzeigende Ergebnismenge
*/
public ResultSetTableModel(ResultSet aResultSet)
{
rs = aResultSet;
try
{
rsmd = rs.getMetaData();
}
catch(SQLException e)
{
e.printStackTrace();
}
}
public String getColumnName(int c)
{
try
{
return rsmd.getColumnName(c + 1);
}
catch(SQLException e)
{
e.printStackTrace();
return "";
}
}
public int getColumnCount()
{
try
{
return rsmd.getColumnCount();
}
catch(SQLException e)
{
e.printStackTrace();
return 0;
}
}
/**
Holt die Ergebnismenge, die dieses Modell offen legt.
@return Die Ergebnismenge
*/
protected ResultSet getResultSet()
{
return rs;
}
private ResultSet rs;
private ResultSetMetaData rsmd;
}
/**
Dieses Klasse verwendet einen bildlauffähigen Cursor (ein
JDBC 2-Feature), um Elemente der Ergebnismenge zu lokalisieren.
*/
class ScrollingResultSetTableModel extends ResultSetTableModel
{
/**
Konstruiert das Tabellenmodell.
@param aResultSet Anzuzeigende Ergebnismenge
*/
public ScrollingResultSetTableModel(ResultSet aResultSet)
{
super(aResultSet);
}
public Object getValueAt(int r, int c)
{
try
{
ResultSet rs = getResultSet();
rs.absolute(r + 1);
return rs.getObject(c + 1);
}
catch(SQLException e)
{
e.printStackTrace();
return null;
}
}
public int getRowCount()
{
try
{
ResultSet rs = getResultSet();
rs.last();
return rs.getRow();
}
catch(SQLException e)
{
e.printStackTrace();
return 0;
}
}
}
abstract class ResultSetTableModel extends AbstractTableModel
{
/**
Konstruiert das Tabellenmodell.
@param aResultSet Anzuzeigende Ergebnismenge
*/
public ResultSetTableModel(ResultSet aResultSet)
{
rs = aResultSet;
try
{
rsmd = rs.getMetaData();
}
catch(SQLException e)
{
e.printStackTrace();
}
}
public String getColumnName(int c)
{
try
{
return rsmd.getColumnName(c + 1);
}
catch(SQLException e)
{
e.printStackTrace();
return "";
}
}
public int getColumnCount()
{
try
{
return rsmd.getColumnCount();
}
catch(SQLException e)
{
e.printStackTrace();
return 0;
}
}
/**
Holt die Ergebnismenge, die dieses Modell offen legt.
@return Die Ergebnismenge
*/
protected ResultSet getResultSet()
{
return rs;
}
private ResultSet rs;
private ResultSetMetaData rsmd;
}
/**
Dieses Klasse verwendet einen bildlauffähigen Cursor (ein
JDBC 2-Feature), um Elemente der Ergebnismenge zu lokalisieren.
*/
class ScrollingResultSetTableModel extends ResultSetTableModel
{
/**
Konstruiert das Tabellenmodell.
@param aResultSet Anzuzeigende Ergebnismenge
*/
public ScrollingResultSetTableModel(ResultSet aResultSet)
{
super(aResultSet);
}
public Object getValueAt(int r, int c)
{
try
{
ResultSet rs = getResultSet();
rs.absolute(r + 1);
return rs.getObject(c + 1);
}
catch(SQLException e)
{
e.printStackTrace();
return null;
}
}
public int getRowCount()
{
try
{
ResultSet rs = getResultSet();
rs.last();
return rs.getRow();
}
catch(SQLException e)
{
e.printStackTrace();
return 0;
}
}
}
---------------------------------------------------
---------------------------------------------------
rs holt sich per executeQuery die Daten - klappt auch!
jetzt die Übergabe an Tablemodell bzw an JTable
----------------------
//Übergabe Resultset an model
model = new ScrollingResultSetTableModel(rs);
//Übergabe model an JTable
table = new JTable(model);
-----------------------
Normalerweise bin ich davon ausgegangen das das alles ist. Weil es nicht funktioniert, habe ich noch folgendes implementiert:
--------------------------
colcount = model.getColumnCount();
rowcounbt = 0;
while(rs.next())
{
for(int i=0;i<colcount;i++)
table = (JTable)model.getValueAt(rowcount,i);
rowcount++;
}
//Anfügen von Table an Scrollpane
scroll = new JScrollPane(table);
Das Problem:
JTable enthält nur die Metadaten. Die Datenzeilen selber werden nicht angezeigt.
Hat jemand eine Idee?
Danke im Vorraus
mbertholl
Diskussionsverlauf:
Re: mysqldb in jtable - schnelle Antwort wäre toll
mysqldb in jtable - schnelle Antwort wäre toll
Auf diesen Beitrag antworten
Neuen Beitrag verfassen
Impressum
·
Datenschutz
·
AGB
·
Infos
·
Presse
Ein modernes Forum:
teamturn.com