简体   繁体   中英

ResultSet in JTable

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

 String [] record= new 
    String[ColCount]; 
    for (i=0; i<ColCount; i++) 
    { 
    record[i]=rset1.getString(i+1); 

    } 
    cell[i] = rset1.getString("loginname"); 
    cell[i] = rset1.getString( "role"); 
    System.out.println(cell[i][0]);
    //ItemGroup = rset1.getString( "Status"); 
    } 
    System.out.println(ItemCode);
    JTable jt = new JTable( 
    cell[i], headers);

but I get only one row which is lastly inserted to database.

You need to put a while loop around your code to iterate over the result set. eg,

while(rset1.next())
{
//do something
}

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<String[]> 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);
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM