当前位置: 技术问答>java相关
通过JDBC存取数据库,该怎样得到结果集的总数?
来源: 互联网 发布时间:2015-07-05
本文导语: 通过JDBC存取数据库,该怎样得到结果集的总数? 不要告诉我用Select count(*)之类的方法。 | Result rs; int count; ... if (rs.last()) { count = rs.getRow(); } 要不 int count=0; while(rs.next()) { coun...
通过JDBC存取数据库,该怎样得到结果集的总数?
不要告诉我用Select count(*)之类的方法。
不要告诉我用Select count(*)之类的方法。
|
Result rs;
int count;
...
if (rs.last()) {
count = rs.getRow();
}
要不
int count=0;
while(rs.next())
{
count++;
}
下次问问题前先搜索论坛吧!!也太多了
int count;
...
if (rs.last()) {
count = rs.getRow();
}
要不
int count=0;
while(rs.next())
{
count++;
}
下次问问题前先搜索论坛吧!!也太多了
|
我估计你是用jdbc-odbc数据源连接数据库、或者是数据库版本太低和使用的驱动不行(不过好点的驱动应该都支持的滚动光标的阿),如果是这几种情况,那么生成的结果集就不支持滚动光标了,rs.last就会出错,建议你用第二种方法计算。
如果以上都不是,那么看看你的Statement初始化是否正确如下:
Statement stmt = con.createStatement(
ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_READ_ONLY);
括符中的参数是否正确?第一个TYPE_SCROLL_INSENSITIVE即决定结果集是否敏感(上面敏感,即支持滚动光标),第二个是结果集是否可编辑(在此无影响)。
如果以上都不是,那么看看你的Statement初始化是否正确如下:
Statement stmt = con.createStatement(
ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_READ_ONLY);
括符中的参数是否正确?第一个TYPE_SCROLL_INSENSITIVE即决定结果集是否敏感(上面敏感,即支持滚动光标),第二个是结果集是否可编辑(在此无影响)。