2013-05-28 73 views
-2

我從數據庫中得到了一個結果集「rs」。 rs只包含一列。我想通過其索引訪問行,而不是所有行。現在,我知道我可以使用它迭代 -使用迭代器遍歷結果集?

while(rs.next()){ 
    rs.getString("employee_name") 
} 

但是,它不讓我選擇該行。

其實,我想要連續行,向它添加一個逗號,然後添加下一行。最後一個元素後面沒有逗號。所以,我需要迭代到倒數第二或第n-1行並繼續添加逗號。之後,我只需要將最後一行添加到我的字符串中,並完成作業。

+0

我想知道,如果像我們遍歷數組,我們可以遍歷一個結果。這裏可能沒有太大意義,但可能在別處有用。 –

+0

是否要在結果集數據中設置逗號,還是其他內容? –

+1

爲什麼你需要通過它的索引來訪問一個列,使得從'resultSet'中檢索到的那一列的行數是逗號分隔的字符串? – Lion

回答

-3
String temp = ""; 

StringBuilder sb = new StringBuiler(); 

while(rs.next()){  
    sb.append(rs.getString("employee_name")); 
    sb.append(","); 
} 

temp = sb.toString(); 
temp = temp.substring(0, temp.length()-1); 
+0

我的代碼 – PSR

+0

PSR中的錯誤是什麼,你應該在發佈這樣的答案之前閱讀一些Java。最初有3個bug(現在,我的意見後,你修復它),並且你提出了一個不好的解決方案。 – lemil77

+0

感謝您的建議 – PSR

-1

嘗試了下:

Set<String> set = new LinkedHashSet<String>(); 
while(rs.next()) { 
    set.add(rs.getString("employee_name")); 
} 

Iterator<String> it = set.iterator(); 
StringBuilder sb = new StringBuilder(); 
while(it.hasNext()) { 
    sb.append(it.next()); 
    if (it.hasNext()) { 
     sb.append(","); 
    } 
} 

String result = sb.toString(); 
+0

我認爲concat和append可以在第一個循環內完成,所以我會更快地完成任務。該集合是好的,但是不需要,因爲你丟棄它下面2行。 – lemil77