Liebe Alle,
ich möchte ein ResultSet aus einer .accdb-Datei in eine JTable füllen, komme aber nicht über das ResultSet hinaus:
Ich habe vorher nur einen String aus einer Spalte der ersten Reihe der DB ausgelesen (mit derselben Routine) und da hat's funktioniert. ;(
Auch in Access funktioniert der Query und liefert das zu erwartende Ergebnis.
Hier noch der StackTrace der NullPointerException, die in Zeile 10 geworfen wird:
Was ist da los? Macht für mich überhaupt keinen Sinn!
Danke für Tips & Ratschläge!
Grüße,
B13
ich möchte ein ResultSet aus einer .accdb-Datei in eine JTable füllen, komme aber nicht über das ResultSet hinaus:
Java:
public JTable queryPeopleTable() throws SQLException {
loadDbDriver(); // Lädt den Treiber und macht die Verbindung
String query = getPeopleQuery(); // Holt den query String
String[] tableColumnsName = {"First Name", "Last Name"};
JTable aTable = new JTable();
DefaultTableModel aModel = (DefaultTableModel) aTable.getModel();
aModel.setColumnIdentifiers(tableColumnsName);
System.out.println(query); // Gibt den (korrekten) SQL-Query aus
rs = stmt.executeQuery(query); // ### HIER SCHMEISST'S DIE EXCEPTION
java.sql.ResultSetMetaData rsmd = rs.getMetaData();
int colNo = rsmd.getColumnCount();
while(rs.next()){
Object[] objects = new Object[colNo];
for(int i=0;i<colNo;i++){
objects[i]=rs.getObject(i+1);
}
aModel.addRow(objects);
}
aTable.setModel(aModel);
return aTable;
} // end method queryPeopleTable()
Ich habe vorher nur einen String aus einer Spalte der ersten Reihe der DB ausgelesen (mit derselben Routine) und da hat's funktioniert. ;(
Auch in Access funktioniert der Query und liefert das zu erwartende Ergebnis.
Hier noch der StackTrace der NullPointerException, die in Zeile 10 geworfen wird:
Code:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at edda.DbOperations.queryPeopleTable(DbOperations.java:114)
at edda.Gui.actionPerformed(Gui.java:316)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6289)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:6054)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4652)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4482)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
at java.awt.Container.dispatchEventImpl(Container.java:2085)
at java.awt.Window.dispatchEventImpl(Window.java:2478)
at java.awt.Component.dispatchEvent(Component.java:4482)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:644)
at java.awt.EventQueue.access$000(EventQueue.java:85)
at java.awt.EventQueue$1.run(EventQueue.java:603)
at java.awt.EventQueue$1.run(EventQueue.java:601)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
at java.awt.EventQueue$2.run(EventQueue.java:617)
at java.awt.EventQueue$2.run(EventQueue.java:615)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:614)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Was ist da los? Macht für mich überhaupt keinen Sinn!
Danke für Tips & Ratschläge!
Grüße,
B13