Почему JSP показывает только одну информацию о сотрудниках не всех? [Дубликат]

Тип raw - это отсутствие параметра типа при использовании родового типа.

Необработанный тип не должен использоваться, потому что это может привести к ошибкам во время выполнения, например, вставить double в то, что должно было быть Set из int s.

Set set = new HashSet();
set.add(3.45); //ok

При извлечении материала из Set вы надеваете Не знаю, что выйдет. Предположим, что вы ожидаете, что это все int s, вы отбрасываете его на Integer; исключение во время выполнения, когда приходит double 3.45.

С параметром типа , добавленным к вашему Set, вы сразу же получите ошибку компиляции. Эта превентивная ошибка позволяет устранить проблему, прежде чем что-то взорвется во время работы (таким образом, сэкономив время и усилия).

Set<Integer> set = new HashSet<Integer>();
set.add(3.45); //NOT ok.
2
задан San Krish 26 December 2013 в 12:04
поделиться

3 ответа

Создайте новый экземпляр

LeaveSummary getValuesFromDb = new LeaveSummary(); 

в вашем цикле while. Вы не создаете новый экземпляр LeaveSummary для каждой записи в вашей базе данных. Так же один и тот же объект переписывается каждый раз, когда вы зацикливаете свой набор результатов. поэтому эта последняя запись существует только в списке.

4
ответ дан Keerthivasan 21 August 2018 в 13:39
поделиться

Проблема заключается в том, чтобы модифицировать один и тот же объект и добавить его в список. Создайте новый объект внутри цикла while.

  LeaveSummary getValuesFromDb = new LeaveSummary();
    Connection con = ConnectionProvider.getCon();
    stmt = con.prepareStatement("SELECT * FROM create_request where username=?");
    stmt.setString(1, objUsr.getUser_name());
    rs = stmt.executeQuery();
    while (rs.next()) {
        //Add this line   
        getValuesFromDb = new LeaveSummary();
        getValuesFromDb.setReqno(rs.getInt(1));
        getValuesFromDb.setUser_name(rs.getString(2));
        getValuesFromDb.setNo_of_days(rs.getInt(4));
        getValuesFromDb.setLeave_Type(rs.getString(3));
        getValuesFromDb.setStatus(rs.getString(6));
        getValuesFromDb.setTotalUnits(rs.getInt(7));
        getValuesFromDb.setBalanceUnits(rs.getInt(8));
        rowArray.add(getValuesFromDb);
    }
2
ответ дан Sureshkumar Panneerselvan 21 August 2018 в 13:39
поделиться

Попробуйте этот код

LeaveSummary getValuesFromDb = new LeaveSummary();
    Connection con = ConnectionProvider.getCon();
    stmt = con.prepareStatement("SELECT * FROM create_request where username=?");
    stmt.setString(1, objUsr.getUser_name());
    rs = stmt.executeQuery();
    while (rs.next()) {

        getValuesFromDb = new LeaveSummary();
        getValuesFromDb.setReqno(rs.getInt(1));
        getValuesFromDb.setUser_name(rs.getString(2));
        getValuesFromDb.setNo_of_days(rs.getInt(4));
        getValuesFromDb.setLeave_Type(rs.getString(3));
        getValuesFromDb.setStatus(rs.getString(6));
        getValuesFromDb.setTotalUnits(rs.getInt(7));
        getValuesFromDb.setBalanceUnits(rs.getInt(8));
        rowArray.add(getValuesFromDb);
    }
1
ответ дан user 21 August 2018 в 13:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: