ResultSet in JTable

前端 未结 2 1841
抹茶落季
抹茶落季 2021-01-26 02:52

How to display ResultSet in JTable. i am using this code

 String [] record= new 
    String[ColCount]; 
    for (i=0; i

        
2条回答
  •  温柔的废话
    2021-01-26 03:35

    The code that you have listed is incomplete/incomprehensible, but the code below shows how to take a ResultSet with an arbitrary number of columns and display its contents in a JTable.

    import java.sql.ResultSet;
    import java.sql.ResultSetMetaData;
    import java.util.ArrayList;
    
    private void viewTable(){
        //Perform database query here, which will open a Connection to the database
        //Assume we use the above query to populate a ResultSet results
    
        //Get information about the ResultSet
        ResultSetMetaData metaData = results.getMetaData();
    
        //Gets the number of columns in results
        int columnCount = metaData.getColumnCount();
        //Gets the name of each column in results
        String[] columnNames = new String[columnCount];
        for(int i = 0; i < columnNames.length; i++){
            columnNames[i] = metaData.getColumnLabel(i+1);
        }
    
        //You can use a String[] to keep track of the rows if you know the #
        //# of rows in the ResultSet, this implementation assumes that we don't
        //This ArrayList will keep track of each row in results (each row is
        //represented by a String[]
        ArrayList rows = new ArrayList<>(); 
        while(results.next()){
            //Fetch each row from the ResultSet, and add to ArrayList of rows
            String[] currentRow = new String[columnCount];
            for(int i = 0; i < columnCount; i++){
                //Again, note that ResultSet column indecies start at 1
                currentRow[i] = results.getString(i+1);
            }
            rows.add(currentRow);
        }
    
        //Close Connection to the database here
    
        String[][] rowsArray = new String[rows.size()][columnCount];
        rowsArray = rows.toArray(rowsArray);
        table = new JTable(rowsArray, columnNames);
    }
    

提交回复
热议问题