-1
にResultSet
をすべて追加しています。私は正常にすべての行を取得します。しかし、すべての行をList
に追加すると、最初の行だけが取得され、ループはすでに追加される別の行をスキップします。理由は何ですか?リストはすでに与えられていても他のResultSetを追加しません
public void getStartEndTimeForOvertime(EmployeeModel employeeModel)
{
String query = "{call getStartEndTimeForOvertime(?,?)}";
List <EmployeeModel> list = new ArrayList();
try(Connection con = DBUtil.getConnection(DBType.MYSQL);
CallableStatement cs = con.prepareCall(query);)
{
cs.setInt(1, EmployeeModel.getId());
cs.setString(2, employeeModel.overtimeModel.getDay());
try(ResultSet rs = cs.executeQuery())
{
while(rs.next())
{
employeeModel.overtimeModel.setStartTime(rs.getString(1));
employeeModel.overtimeModel.setEndTime(rs.getString(2));
list.add(employeeModel);
}
}
}
catch(SQLException ex)
{
System.out.println("Error at getStartEndTimeForOvertime: "+ex.getSQLState());
System.out.println("Error at getStartEndTimeForOvertime: "+ex.getMessage());
System.out.println("Error at getStartEndTimeForOvertime: "+ex.getErrorCode());
}
}
を行うあなたは 'immutable'データ値オブジェクトを使用することを学ばなければならない理由です。これらの愚かな間違いは決して起こりません。 –
これはまだ別のオブジェクトを作成しても最初の行しか取得できません。 –