Так что я пытаюсь сохранить результат запроса MySQL установлен в многомерном HashMap, как указано так:Сохранение нескольких строк из запроса MySQL в многомерном HashMap
public HashMap<String, HashMap<String, String>> getData(String query)
{
Statement stmt = null;
HashMap<String, HashMap<String, String>> results = new HashMap<String, HashMap<String, String>>();
try
{
stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(query);
ResultSetMetaData rsmd = rs.getMetaData();
while (rs.next())
{
for (int i = 1; i < rsmd.getColumnCount() + 1; i++)
{
results.put(Integer.toString(i - 1), new HashMap<String, String>());
results.get(Integer.toString(i - 1)).put(rsmd.getColumnLabel(i), rs.getString(i));
}
}
}
catch (SQLException ex)
{
ex.printStackTrace(System.out);
}
return results;
}
Однако при использовании функции для печати его как так:
public static void printMap(Map mp)
{
Iterator it = mp.entrySet().iterator();
while (it.hasNext())
{
Map.Entry pair = (Map.Entry)it.next();
System.out.println(pair.getKey() + " = " + pair.getValue());
it.remove();
}
}
Это только сохранение результата одной строки, и я не могу окутать голову в почему.
0 = {Date=2014-11-04}
1 = {Num=1256}
2 = {ATime=null}
3 = {ALocCode=null}
4 = {DTime=1:00 PM}
5 = {DLocCode=JFK}
6 = {EstATime=8:00 PM}
7 = {EstDTime=1:00 PM}
8 = {EId=7624}
Мой вопрос есть, и единственный способ, который я могу сказать, касается PHP, - как я могу его хранить так?
$result[0]['Date'] = '3214';
....
$result[1]['Date'] = '6426';
Поскольку это по сути то, чего я пытаюсь достичь?
Почему Карта вместо HashMap? – Rhododendron
Также окончательная запись не будет компилироваться, изменив ее на окончательный Map.Entry исправляет ее: D – Rhododendron
@EllisonPatterson Использование 'Entry' unqualified будет работать, если вы импортируете его. – Andreas