У меня есть функция, которая отправляет запрос в мою базу данных и сохраняет результат в набор результатов.Другая функция должна принять значения набора результатов и поместить его в хэш-карту.если я отлаживаю свой код, функция, которая получает данные из базы данных, возвращает значения в наборе результатов, но если я передам этот набор результатов в качестве параметра функции hashmap, то это говорит о том, что набор результатов будет пустым.Я сижу на этой проблеме со вчерашнего дня и не могу найти никакого ответа.Может ли кто-нибудь найти ошибку в моем коде?
Это моя функция Hashmap и функция для создания набора результатов.
public HashMap<String, List<ResultSet>> toHashMap(ResultSet rset) throws SQLException, IOException {
HashMap<String, List<ResultSet>> hmap = new HashMap<String, List<ResultSet>>();
while (rset.next()) {
String Processday = rset.getString("PROCESSDAY");
if (hmap.containsKey(Processday)) {
List<ResultSet> s = hmap.get(Processday);
s.add(rset);
} else {
List<ResultSet> newList = new ArrayList();
newList.add(rset);
hmap.put(Processday, newList);
}
System.out.println(hmap.size());
// convertToKML(distance, ax, ay, sx, sy, out);
}
return hmap;
}
и это моя функция набора результатов.
public ResultSet getDBData(Connection conn, String[] args, RequiredMethods kml) throws SQLException{
ResultSet rset;
stmt = conn.createStatement();
String sql_query;
String[] userinput = kml.getUserInput(args);
// String sql_query = "SELECT * from STOPPOINT_CORRECTED_BVAGG WHERE
// trunc(PROCESSDAY) BETWEEN to_date('" + dateargs +"','ddmmyy') AND
// to_date('" + toDate +"','ddmmyy') AND actualx is not null and
// actualy is not null and distance is not null";
if(userinput[0].isEmpty()){
sql_query = "select distinct(trunc(PROCESSDAY)) PROCESSDAY,STOPPOINTID,ACTUALX,ACTUALY,SCHEDULEDX,SCHEDULEDY, DISTANCE from tabletest WHERE trunc(PROCESSDAY) = to_date('" + kml.getDateAsString()
+ "','ddmmyy') AND actualx is not null and actualy is not null and distance is not null";
}
else if (userinput[1] == null) {
sql_query = "select distinct(trunc(PROCESSDAY)) PROCESSDAY,STOPPOINTID,ACTUALX,ACTUALY,SCHEDULEDX,SCHEDULEDY, DISTANCE from tabletest WHERE trunc(PROCESSDAY) = to_date('" + userinput[0]
+ "','ddmmyy') AND actualx is not null and actualy is not null and distance is not null";
}else{
sql_query = "select distinct(trunc(PROCESSDAY)) PROCESSDAY,STOPPOINTID,ACTUALX,ACTUALY,SCHEDULEDX,SCHEDULEDY, DISTANCE from tabletest WHERE trunc(PROCESSDAY) BETWEEN to_date('" + userinput[0]
+ "','ddmmyy') AND to_date('" + userinput[1]
+ "','ddmmyy') AND actualx is not null and actualy is not null and distance is not null";
}
System.out.println(sql_query);
rset = stmt.executeQuery(sql_query);
System.out.println("Query sent");
/*while(rset.next()){
System.out.println(rset.getString("ACTUALX"));
}*/
return rset;
}