ResultSet to TableModel PDF Print E-mail
Written by Charles   
Friday, 31 October 2008 13:41

Here is an easy way to convert a Java ResultSet to a TableModel, from which you can create a JTable thus:

JTable t = new JTable(DbUtils.resultSetToTableModel(rs));

If you only need a List of List, you can call

java.util.List listOfList = net.proteanit.sql.DbUtils.resultSetToNestedList(rs); 

The jar is HERE (add it to your classpath to use it), and it includes source. You need to import net.proteanit.sql.DbUtils if using the DbUtils below from the jar

 

import java.sql.ResultSet;
import java.sql.ResultSetMetaData;

import java.util.Vector;

import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;


public class DbUtils {
    public static TableModel resultSetToTableModel(ResultSet rs) {
        try {
            ResultSetMetaData metaData = rs.getMetaData();
            int numberOfColumns = metaData.getColumnCount();
            Vector columnNames = new Vector();

            // Get the column names
            for (int column = 0; column < numberOfColumns; column++) {
                columnNames.addElement(metaData.getColumnLabel(column + 1));
            }

            // Get all rows.
            Vector rows = new Vector();

            while (rs.next()) {
                Vector newRow = new Vector();

                for (int i = 1; i <= numberOfColumns; i++) {
                    newRow.addElement(rs.getObject(i));
                }

                rows.addElement(newRow);
            }

            return new DefaultTableModel(rows, columnNames);
        } catch (Exception e) {
            e.printStackTrace();

            return null;
        }
    }
}
Comments
Search
Kenji  - Awesome! But no columnnames?   |77.251.17.xxx |2010-10-16 22:29:22
This is absolutely awesome, thanks so much!
The only thing is, I am not getting
the tablenames to show. Any idea why?
Charles   |81.155.65.xxx |2010-10-16 22:54:21
If by 'tablenames' you mean column names, make sure you add your JTable to a
JScrollPane
Only registered users can write comments!

3.26 Copyright (C) 2008 Compojoom.com / Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved."

Last Updated ( Sunday, 17 July 2011 10:43 )