java - 结果集无法遍历

标签 java resultset

我想使用while(rs.next())来遍历UserInfo表。 UserInfo 表中有 7 条记录,但我只得到了第一条记录。当我加入rs.getRow();的代码后,我得到了我想要的结果。

try{
    Statement stmt=conn.createStatement();
    String queryStr="SELECT * FROM UserInfo";
    ResultSet rs=stmt.executeQuery(queryStr);

    while(rs.next())
    {
        String strName="Name is "+rs.getString(3)+";";
        String intAge="Age is "+rs.getInt(5)+";";
        String strCompany="Company is "+rs.getString(4)+".<br>";
        //int rowNum=rs.getRow();
        out.println(strName+intAge+strCompany);
    }

    out.println("Succeed in visiting UserInfo table.");
    }catch(SQLException e){
        out.println("Failed to query.");
    }

我不想使用rs.getRow();。我该如何处理这个问题?

最佳答案

除了字符串部分之外,您的代码看起来确实没问题。如果您使用字符串来保存一条记录,那么您将无法显示所有 7 条记录。

因此尝试使用像ArrayList这样的集合对象。当然,您应该在finally block 中关闭连接。

try{
  Statement stmt=conn.createStatement();
  String queryStr="SELECT * FROM UserInfo";
  ResultSet rs=stmt.executeQuery(queryStr);
  List<String> list = new ArrayList<String>();  

  while(rs.next()){

    list.add(rs.getString(3));

  }

 System.out.println("rows "+list.size());
 }catch(SQLException e){
    out.println("exception "+e.getMessage());
 }
 finally{
 rs.close();
 stmt.close();
 conn.close();
 }

这是一个很好的例子,说明了如何使用集合对象从数据库中检索值。 http://theopentutorials.com/tutorials/java/jdbc/how-to-retrieve-all-rows-from-mysql-table-using-jdbc/

关于java - 结果集无法遍历,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26602510/

相关文章:

java - 如何维护多个异常的单个日志文件

java - 使用索引递归地从 LinkedList 中删除 Odds

java - 使用来自 sql 的数据将数据添加到组合框 - java

mysql - 运行 mysql 程序 select 操作产生许多结果集

java - 使用 JDBC 的小程序 - java.security.AccessControlException : access denied

java - 无法为类型 'x.y.z.package' 构建查询,该类型既未配置,也没有任何配置的子类型

java - 如何设置厘米:title via camel-cmis?

Java SQL 查询执行,读取 ResultSet 行时出现问题

java - 如何保存 SQL 查询的结果集以便多次使用?

java - 如何使用java的ResultSet获取mysql的float的精确值