JTable aus ResultSet füllen
Wenn Sie versuchen, eine JTable aus einem ResultSet mit Ihrem bereitgestellten Code zu füllen, kann die Fehlermeldung „java. lang.IllegalStateException: SQLite JDBC: inkonsistenter interner Status.“ Um dieses Problem zu beheben und den Prozess zu vereinfachen, sollten Sie die Verwendung einer einfacheren Methode in Betracht ziehen.
Das folgende Beispiel zeigt eine Möglichkeit, ein Modell aus einer ResultSet-Instanz zu erstellen:
public static void main(String[] args) throws Exception { // Obtain the Connection ResultSet rs = stmt.executeQuery("select * from product_info"); // Create and display the table JTable table = new JTable(buildTableModel(rs)); // Close the Connection JOptionPane.showMessageDialog(null, new JScrollPane(table)); }
Die Methode „buildTableModel“. ist definiert als:
public static DefaultTableModel buildTableModel(ResultSet rs) throws SQLException { ResultSetMetaData metaData = rs.getMetaData(); // Column names Vector<String> columnNames = new Vector<String>(); int columnCount = metaData.getColumnCount(); for (int column = 1; column <= columnCount; column++) { columnNames.add(metaData.getColumnName(column)); } // Table data Vector<Vector<Object>> data = new Vector<Vector<Object>>(); while (rs.next()) { Vector<Object> vector = new Vector<Object>(); for (int columnIndex = 1; columnIndex <= columnCount; columnIndex++) { vector.add(rs.getObject(columnIndex)); } data.add(vector); } return new DefaultTableModel(data, columnNames); }
Das obige ist der detaillierte Inhalt vonWie fülle ich eine JTable aus einem ResultSet in Java ohne eine IllegalStateException?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!