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判断查询结果是否为空以及获取查询结果行数的方法
标签: