Maison >Java >javaDidacticiel >Comment remplir une JTable à partir d'un ResultSet en Java sans IllegalStateException ?

Comment remplir une JTable à partir d'un ResultSet en Java sans IllegalStateException ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-27 12:12:09255parcourir

How to Populate a JTable from a ResultSet in Java Without an IllegalStateException?

Remplir JTable à partir de ResultSet

Lorsque vous essayez de remplir une JTable à partir d'un ResultSet à l'aide du code fourni, vous pouvez rencontrer l'erreur "java. lang.IllegalStateException : SQLite JDBC : état interne incohérent." Pour résoudre ce problème et simplifier le processus, envisagez d'utiliser une méthode plus simple.

L'exemple suivant montre une manière de construire un modèle à partir d'une instance 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));

}

La méthode "buildTableModel" est défini comme :

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);

}

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn