开发者

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

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜