Как заполнить JList содержимым ResultSet после запроса к базе данных MS Access - PullRequest
0 голосов
/ 14 марта 2011
private void populateJlist(){
    try
    {
        Connection connection = newConnection.createConnection();
        Statement newStat = connection.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
        ResultSet res = newStat.executeQuery("SELECT AccName FROM AccList");

                String data = "";
        while (res.next()){
            data += res.getString("AccName") + " ";
        }
        String acclist[] = data.split(" ");
        AccountList = new JList(acclist);
        newStat.close();
        connection.close();

    }
    catch(SQLException e){
        System.err.println("SQLException: " + e.getMessage());
    }

}

ЧТО СЛЕДУЕТ ДЕЛАТЬ - Метод запросит столбец AccName БД из таблицы AccList и получит все имена учетных записей и вставит их в Jlist

ЧТО НУЖНО ПОМОЧЬ - мне нужна помощь в реализацииJlist, который будет заполнен полями из столбца БД.

Я попытался найти помощь в Интернете, и ближайшим к решению было то, что мне удалось сделать выше.

Я узнал, что есть 2 возможных способа

Resultset -> Array -> Jlist Resultset -> Vector -> Jlist

однако я не знаю, как сделать эти преобразования либо,Я бы сказал, что я новичок в JAVA.Любая подробная помощь приветствуется.

1 Ответ

5 голосов
/ 15 марта 2011

Как вы говорите, использование массива или вектора будет чище и проще, чем ваше раздельное решение.Лично я бы предложил Вектор.По сути, вы хотите создать пустой вектор, выполнить итерацию по результирующему набору, добавляя каждое значение в вектор с помощью метода Vector.add(Object o), а затем создать jlist вне цикла с вектором.Примерно так (предупреждение: не проверено)

Vector<String> temp = new Vector<String>();
while (res.next()) {
    temp.add(res.getString("AccName"));
}
Jlist acctList = new Jlist(temp);
...