Class.forName("org.sqlite.JDBC");
Connection conn =
    DriverManager.getConnection("jdbc:sqlite:userdata.db");
Statement stat = conn.createStatement();
ResultSet rs = stat.executeQuery("SELECT * from table WHERE is_query_processed = 0;");
int rowcount = rs.getRow(); 
System.out.println("Row count = "+rowcount); // output 1
rs.first(); // This statement generates an exception为甚麽呢?
发布于 2010-05-30 21:37:27
我通常使用的模式如下:
boolean empty = true;
while( rs.next() ) {
    // ResultSet processing here
    empty = false;
}
if( empty ) {
    // Empty result set
}发布于 2010-05-30 21:38:47
下面是一个简单的方法:
public static boolean isResultSetEmpty(ResultSet resultSet) {
    return !resultSet.first();
}注意事项
这会将光标移动到开头。但是,如果您只是想测试它是否为空,那么您可能还没有对它做任何事情。
另一个选择
在进行任何处理之前,请立即使用first()方法。SELECT rs = stat.executeQuery("SELECT * from ResultSet WHERE is_query_processed = 0;");
if(rs.first()) {
    // there's stuff to do
} else {
    // rs was empty
}参考文献
ResultSet (Java Platform SE 6)
发布于 2010-05-30 21:36:13
你也可以这样做:
rs.last();
int numberOfRows = rs.getRow();
if(numberOfRows) {
    rs.beforeFirst();
    while(rs.next()) {
        ...
    }
}https://stackoverflow.com/questions/2938812
复制相似问题