ResultSet в JTable - PullRequest
       19

ResultSet в JTable

0 голосов
/ 23 марта 2010

Как отобразить ResultSet в JTable. я использую этот код

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

но я получаю только одну строку, которая последний раз вставляется в базу данных.

Ответы [ 2 ]

1 голос
/ 23 марта 2010

Вам нужно поместить цикл while вокруг вашего кода, чтобы перебрать набор результатов. например,

while(rset1.next())
{
//do something
}
0 голосов
/ 06 ноября 2014

Код, который вы перечислили, является неполным / непонятным, но код ниже показывает, как взять ResultSet с произвольным числом столбцов и отобразить его содержимое в 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);
}
...