Тип 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.
Создайте новый экземпляр
LeaveSummary getValuesFromDb = new LeaveSummary();
в вашем цикле while. Вы не создаете новый экземпляр LeaveSummary для каждой записи в вашей базе данных. Так же один и тот же объект переписывается каждый раз, когда вы зацикливаете свой набор результатов. поэтому эта последняя запись существует только в списке.
Проблема заключается в том, чтобы модифицировать один и тот же объект и добавить его в список. Создайте новый объект внутри цикла 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);
}
Попробуйте этот код
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);
}