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

boolean next()

throws

Moves the cursor forward one row from its current position. A ResultSet cursor is initially positioned before the first row; the first call to the method next makes the first row the current row; the second call makes the second row the current row, and so on.

When a call to the next method returns false, the cursor is positioned after the last row. Any invocation of a ResultSet method which requires a current row will result in a SQLException being thrown. If the result set type is TYPE_FORWARD_ONLY, it is vendor specified whether their JDBC driver implementation will return false or throw an SQLException on a subsequent call to next.

If an input stream is open for the current row, a call to the method next will implicitly close it. A ResultSet object's warning chain is cleared when a new row is read.

Returns:

true if the new current row is valid; false if there are no more rows

Throws:

SQLException - if a database access error occurs or this method is called on a closed result set

翻译如下: 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();

// 其他代码不变

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值