Rumah >Java >javaTutorial >Bagaimana untuk Mengisi JTable dari ResultSet di Java Tanpa IllegalStateException?
Mengisi JTable daripada ResultSet
Apabila cuba mengisi JTable daripada ResultSet menggunakan kod yang anda sediakan, anda mungkin menghadapi ralat "java. lang.IllegalStateException: SQLite JDBC: keadaan dalaman tidak konsisten." Untuk menangani perkara ini dan memudahkan proses, pertimbangkan untuk menggunakan kaedah yang lebih mudah.
Contoh berikut menunjukkan cara untuk membina model daripada contoh ResultSet:
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)); }
Kaedah "buildTableModel" ditakrifkan sebagai:
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); }
Atas ialah kandungan terperinci Bagaimana untuk Mengisi JTable dari ResultSet di Java Tanpa IllegalStateException?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!