2012-09-04 32 views
2

我有表員工如何在java中添加結果集中的列?

檢索到的列select emp_name,emp_add from employee

while(iResultSet1.next()) 
      { 
       List expRptColWise = new ArrayList(); 

       for(Integer i=1;i<=iResultSet1.getMetaData().getColumnCount();i++){ 


         expRptColWise.add(iResultSet1.getString(i)); 

       } 

       expRptRowWise.add(expRptColWise); 

有了上面的代碼中,我得到

emp_name | emp_add | 
A  | add1 | 
B  | add2 | 

我想在結果集中添加序列號coloumn讓我取得結果爲

emp_name | emp_add |Sr_No| 
A  | add1 |1 | 
B  | add2 |2 | 

請指導我如何在結果集或集合對象中動態添加列,這裏我使用了ArrayList。

+0

您使用的是哪個數據庫? –

+0

數據庫是oracle – Edward

+2

您可以在查詢中使用'row_number()'作爲列,並在結果集中獲取。 –

回答

5

在While循環中設置一個計數器,每次遞增並在輸出中使用它:

int j = 0; 
while(iResultSet1.next()) 
{ 
    j++; 
    List expRptColWise = new ArrayList(); 
    for(Integer i=1;i<=iResultSet1.getMetaData().getColumnCount();i++) 
    { 
     expRptColWise.add(iResultSet1.getString(i)); 
    } 
    expRptColWise.add(j); 
    expRptRowWise.add(expRptColWise); 
} 
+0

+1哈,打我吧:P – MadProgrammer

11

使用以下查詢

select emp_name,emp_add, (ROW_NUMBER() OVER (ORDER BY emp_name)) AS sr_no from employee 
+2

+1不錯的使用數據庫功能 – MadProgrammer

3

我喜歡DinupKandel的反應,而是因爲我們不應該把所有雞蛋放在同一個籃子

int row = 0; 
while(iResultSet1.next()) 
{ 
    List expRptColWise = new ArrayList(); 
    for(Integer i=1;i<=iResultSet1.getMetaData().getColumnCount();i++){ 
     expRptColWise.add(iResultSet1.getString(i)); 
    } 
    expRptColWise.add(++row); 
    expRptRowWise.add(expRptColWise); 
} 

可能會爲工作,你

+0

不...呃打我... 10毫秒:) – CloudyMarble