2013-05-28 72 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