2013-05-28 3 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 개의 버그가 있습니다. (현재, 내 의견을 고친 후에 수정했습니다.) 또한 나쁜 해결책을 제안합니다. – 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

관련 문제