如何从java中的结果集返回多行?

时间:2013-12-09 04:44:53

标签: java database selenium-webdriver

我有一个查询,它返回多行到结果集。现在我需要将总行数返回到调用此函数的应用程序。

我尝试使用此代码:

  final PreparedStatement ps = con.prepareStatement(query);

        rs = ps.executeQuery();

        while (rs.next()) {
            result = rs.getInt(1);
        }

通过此代码,我只能返回一个值。  现在我想返回多行

5 个答案:

答案 0 :(得分:3)

创建Integer ArrayList并添加result,返回该数组列表。

ArrayList<Integer> resultList = new ArrayList<Integer>();
while (rs.next()) {
        result = rs.getInt(1); 
        resultList.add(result);
    }
return resultList;

答案 1 :(得分:1)

您可以使用以下代码:

public static List<String> getSqlQueryResult(String sqlQuery) {
        List<String> lst = new ArrayList<String>();
        try {
            Statement stmt = conSql.createStatement();
            ResultSet res = stmt.executeQuery(sqlQuery);
            ResultSetMetaData rsmd = res.getMetaData();
            while (res.next()) {
                for (int i = 1; i <= rsmd.getColumnCount(); i++) {
                    lst.add(res.getString(i));
                }
            }
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return lst;
    }

答案 2 :(得分:0)

尝试此代码希望这可以帮助您

final PreparedStatement ps = con.prepareStatement(query);

      ResultSet rs=ps.getResutlSet();
      ResultSetMetaData rsmd=rs.getMetaData();
      for(int i=1;i<=rsmd.getRowCount();i++){

      String resut=rsmd.getString(i);
    }

答案 3 :(得分:0)

在此行中result = rs.getInt(1);每次都会使用新值替换结果。 一个好的替代方法是将值存储在列表中然后返回列表,前提是方法返回类型应为List

答案 4 :(得分:0)

结果集将包含查询返回的行数。 使用结果集object.next我们可以轻松浏览这些数据行。 在上面的代码中,您只获得一个值。 如果结果集包含多个值。 然后使用索引获取此值。

while(rs. next)
{

result1=rs.getInt(1);//this will get the two value in each row.
result2=rs.getInt(2);


}

如果有多个值,则使用那么多索引rs.getint(1) .... rs.getInt(10) 也适用于弦乐rs.getString(2)