我想使用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/