如何在java中的结果集中添加列?

时间:2012-09-04 06:36:46

标签: java sql resultset

我有桌子员工

我将列检索为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。

3 个答案:

答案 0 :(得分:11)

使用以下查询

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

答案 1 :(得分: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);
}

答案 2 :(得分: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);
}

可能会为你工作