我想使用while(rs.next())遍历UserInfo表。UserInfo表中有七条记录,但我只得到了第一条记录。在我加入了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();。我该如何处理这个问题呢?
发布于 2014-10-28 16:25:23
您的代码看起来确实很好,除了您使用字符串part.If来保存记录之外,那么您将无法显示所有7条记录。
因此,尝试使用像ArrayList这样的集合对象。当然,你应该在finally块中关闭连接。
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/
发布于 2014-10-28 15:06:22
rs.next只告诉您是否有下一条记录。
当你运行时
ResultSet rs=stmt.executeQuery(queryStr);这已经将第一条记录中的数据放到了变量rs中。
为了前进到下一条记录,您需要运行rs.getRow,但仅当存在
下一条记录(与rs.next核对)。
发布于 2014-10-28 15:10:21
rs.next()将光标从其当前位置向前移动一行。ResultSet游标最初位于第一行之前;对方法next的第一次调用使第一行成为当前行;
https://stackoverflow.com/questions/26602510
复制相似问题