Topic: 如何判断一个查询结果集resultset是否包含记录? |
Print this page |
1.如何判断一个查询结果集resultset是否包含记录? | Copy to clipboard |
Posted by: ant21 Posted on: 2003-09-05 17:05 数据库是sql server 2000,jdbc是jtds。 我想要获得查询结果集resultset的行数,查了以前的帖子,用 rs.last(); rowNum = rs.getRow(); 可是查询一个包含了23条记录的结果集,rowNum却是-3,也就是说当前光标定位在倒数第3行,反复试了几遍都是这样,我只好用rs.next()循环来获得rs的真实行数。 但我还需要判断一个rs是否包含有记录,如果是不包含任何记录的rs,我该通过怎样的方法得知呢?我用rs.next()肯定是不行了,因为指针无法移动,总是报错。 会不会是jdbc的问题? 各位有什么好的方法吗? 谢谢。 |
2.Re:如何判断一个查询结果集resultset是否包含记录? [Re: ant21] | Copy to clipboard |
Posted by: dog72 Posted on: 2003-09-05 17:17 一些driver不是JDBC2.0的实现,所以getRow可能会出错。 要想知道行数,用select count 来实现吧。 |
3.Re:如何判断一个查询结果集resultset是否包含记录? [Re: ant21] | Copy to clipboard |
Posted by: dwju Posted on: 2003-09-05 17:50 我在通常情况下使用这样的方法! 例如以下代码: resultset.first(); if(resultset.isAfterLast) { ……………… } |
4.Re:如何判断一个查询结果集resultset是否包含记录? [Re: ant21] | Copy to clipboard |
Posted by: ant21 Posted on: 2003-09-06 00:03 找遍各大论坛,终于找到答案了,其实判断结果集是否有记录很简单: if (rs.next()) {"rs has data"} else {"rs has NO data"} 我试过了,很管用。因为在刚刚得到rs的时候,它的指针是指在第一条记录之前的。 |
5.Re:如何判断一个查询结果集resultset是否包含记录? [Re: ant21] | Copy to clipboard |
Posted by: dog72 Posted on: 2003-09-08 09:30 ant21 wrote: 你不是想知道纪录的行数吗?难道仅仅是想知道有没有记录这么简单呀。 |
6.Re:如何判断一个查询结果集resultset是否包含记录? [Re: ant21] | Copy to clipboard |
Posted by: sc33 Posted on: 2003-09-08 21:30 再给你个窍门: 在你的查询sql变成: String countSQL = “select count from (” + SQL + ")"; ResultSet rs = stmt.executeQuery(countSQL); rs.next(); int num = rs.getInt(1); //num就是你的记录总数 这样你就不用老循环了! |
7.Re:如何判断一个查询结果集resultset是否包含记录? [Re: ant21] | Copy to clipboard |
Posted by: jiwolf Posted on: 2003-10-08 14:08 同意sc33,换种思路不是很好 |
8.Re:如何判断一个查询结果集resultset是否包含记录? [Re: ant21] | Copy to clipboard |
Posted by: yb79528 Posted on: 2003-10-08 14:18 可是有些时候"select count"不被数据库支持啊 |
9.Re:如何判断一个查询结果集resultset是否包含记录? [Re: ant21] | Copy to clipboard |
Posted by: wood Posted on: 2003-10-08 14:51 ant21 wrote: 找遍各大论坛,终于找到答案了,其实判断结果集是否有记录很简单: if (rs.next()) {"rs has data"} else {"rs has NO data"} 我试过了,很管用。因为在刚刚得到rs的时候,它的指针是指在第一条记录之前的。 我遇到的情况是这样的: while(rs.next()){ do sth; } if (rs.isAfterLast()) { // 如果是空记录集时,方法返回false do sth; } |
10.Re:如何判断一个查询结果集resultset是否包含记录? [Re: ant21] | Copy to clipboard |
Posted by: emate Posted on: 2003-10-08 16:12 wood兄的想法蛮有意思,不过isAfterLast()好像也是jdbc2.0的特性。 |
Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1 客服电话 18559299278 客服信箱 714923@qq.com 客服QQ 714923 |