所以我想存儲一個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'將會工作。 – Andreas