我正在阅读一个包含三列和多行的Excel工作簿,并使用rs.next()打印所有行的值,但它只打印第一行值。
我尝试了以下两种方法,但它始终只打印第一行,而rowscount = 1。
Statement s = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ltSet.CONCUR_READ_ONLY)
Statement s = con.createStatement();
到目前为止,这是我的代码。有人能告诉我如何打印所有行吗?
public static void main(String[] args) throws SQLException {
Connection con=DriverManager.getConnection( "jdbc:odbc:Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DBQ=D:\\Test.xls");
//Statement s = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
Statement s = con.createStatement();
ResultSet rs = s.executeQuery("SELECT * FROM [Sheet1$]");
int rowcount=0;
if(rs.next())
{
String userid1=rs.getString("UserId");
System.out.println(userid1);
++rowcount;
}
System.out.println("Total number of records = " + rowcount);
rs.close();
}
}
答案 0 :(得分:1)
您必须使用while
循环而不是if
语句。
If
语句只会执行一次,但不会循环以获得所需的结果。
while(rs.next())
{
String userid1=rs.getString("UserId");
System.out.println(userid1);
++rowcount;
}
完全用上面的代码替换你的if块。
答案 1 :(得分:0)
replace the if(rs.next()) with while(rs.next())