当前位置:Gxlcms > 数据库问题 > MySQL的JDBC判断查询结果是否为空以及获取查询结果行数的方法

MySQL的JDBC判断查询结果是否为空以及获取查询结果行数的方法

时间:2021-07-01 10:21:17 帮助过:3人阅读

    boolean next() throws SQLException         将当前行从上一行移到下一行。一个 ResultSet的当前行最初指向第一行查询结果前。当第一次调用next的时候,当前行将会指向第一行查询结果。第二次调用就会指向第二行查询结果,等等。     当调用next方法返回false的时候,当前行当前行指向最后一行查询结果之后。这时候,任何ResultSet 的请求当前行的方法调用都会导致SQLException 被抛出。但如果查询的结果设置为TYPE_FORWARD_ONLY,next方法在这时候根据实现厂商的不同,可能会返回false也坑能会抛出SQLException 异常  的警告将会被清楚。
关于的next的开始和结束,可以用下面的图来解释:     0->1->2->3->4->0                中间的1, 2, 3, 4是查询结果     ^                           ^ 开始                          结束
判断JDBC查询结果是否为空的正确姿势:
Statement statement = conn.createStatement();
ResultSet res = statement.executeQuery(selectSql);
if (!res.next()) {
    //res is null
} else {
    // res is not null
}

获取查询结果的行数

JDBC并没有直接提供获取查询结果总行数的方法给我们调用,为此我们需要使用间接的手段来执行:
第一种方法:
ResultSet res = ...使用某种方法获取查询结果
int nRow = 0;
while(res.next()) {
    ++nRow;
}
res.beforeFirst();
// 其他代码不变

第二种方法:
ResultSet res = ...使用某种方法获取查询结果
res.last();
final int nRow = res.getRow();
res.beforeFirst();
// 其他代码不变

MySQL的JDBC判断查询结果是否为空以及获取查询结果行数的方法

标签:

人气教程排行