Rumah >Java >javaTutorial >Bagaimana untuk Mengisi JTable dari ResultSet di Java Tanpa IllegalStateException?

Bagaimana untuk Mengisi JTable dari ResultSet di Java Tanpa IllegalStateException?

Susan Sarandon
Susan Sarandonasal
2024-12-27 12:12:09171semak imbas

How to Populate a JTable from a ResultSet in Java Without an 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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn