Java 统计数据库中符合条件的行数 怎么做

Java 统计数据库中符合条件的行数 怎么做,第1张

有两种方式

1通过sql语句:

如select count(id) from tab where id<10;

这样查出来的就是行数

2 在java中

//sqlRst是ResultSet 对象的实例

int RowCount = sqlRstgetRow();//获得当前行号

查找某个表的总行数,用 select count() from table是一个好的想法。从结果中得到行值就能获取 table的总行数。然而,如果不用这个方法,想要直接返回行数的方法是没有的,毕竟jdbc是统一的标准,这个标准接口里面没有直接返回table总行数的方法,这点要理解。然而如果能得到ResultSet (内存模拟的视图)可以用 getFetchSize得到总行数。这个方法并不能完全的满足你的要求,但您得明白,对于没有直接提供的方法,除了用某些手段,我们无可奈何。 getFetchSizeint getFetchSize() throws SQLException 获取此 ResultSet 对象的获取大小。 </dd>返回: 此 ResultSet 对象的当前获取大小 抛出: SQLException - 如果发生数据库访问错误或在已关闭的结果集上调用此方法getFetchSize() 这个方法

refreshRow()用数据库里最新的数据来刷新当前row

setFetchDirection(int direction);设置此 ResultSet 对象中行的处理方向。初始值由生成此 ResultSet 对象的 Statement 对象确定。获取方向可以在任何时间更改。。

setFetchSize(int rows);为 JDBC 驱动程序设置此 ResultSet 对象需要更多行时应该从数据库获取的行数。如果指定的获取大小为零,则 JDBC 驱动程序忽略该值,随意对获取大小作出它自己的最佳猜测。默认值由创建结果集的 Statement 对象设置。获取大小可以在任何时间更改。

rowDeleted();获取是否已删除某行。删除的行可能在结果集中留下一个可见的“洞”。此方法可用于检测结果集中的洞。返回值取决于此 ResultSet 对象是否可以检测到删除。

注:对于 CONCUR_READ_ONLY 的结果集并发性,对 rowDeleted 方法的支持是可选的

ResultSet 是一个迭代模式的动态连接容器。

迭代模式的容器遍历的时候通常是这样的

while(rsnext()){

//循环内容

}

rsnext()返回值是一个boolean,表示在迭代过程中是否已经到结尾。

直接从statementexcuteQuery()获得的rs默认数据游标在起始数据的前一个位置,调用一遍rsnext()才能指向可能有数据的第一条数据。然后遍历继续,直到迭代集合中再无数据rsnext()返回false;

ps:rsgetRow()表达的意思是结果集在当前游标下共存在多少列,不是rs的size()

在循环体中您将可以获得当前整行数据的各个列的值以及其它信息。

先rslast(),跳到最后一行,然后获得的行数就是查询集的行数,在rsbeforefirst()

int row;

int col;

stmt = connprepareStatement( SQL ,ResultSet

TYPE_SCROLL_INSENSITIVE,

ResultSetCONCUR_READ_ONLY);

rs = stmtexecuteQuery();

if( rslast())

{

row = rsgetRow();

rsbeforeFirst();

}

int col = rsgetMetaData()getColumnCount();

rslast();

int rowCount = rsgetRow();

或者

int rowCount = 0;

while(rsetnext()) {

rowCount++;

}

其实,如果你只要行数,不要其他东西,改一下sql就行了

String sql = "select count() from student where snum = '"+a+"' and password = '"+b+"'";

直接查询行数

int rowCount = 0;

if(rsetnext()) {

rowCount=rset getInt(1); // 这里是0还是1 忘了

}

ResultSet的getRow()函数的返回结果是当前数据集的行号,而不是结果的行数。

你使用getRow() 的时候 获得的是0 是因为你光标未移动导致的。

可以这样使用

/取到最后一行的行数

rslast();

int row=rsgetRow();

rsbeforeFirst();

/

以上就是关于Java 统计数据库中符合条件的行数 怎么做全部的内容,包括:Java 统计数据库中符合条件的行数 怎么做、怎样用一个java方法返回所查询数据库某个表的行数、JDBC的ResultSet等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/10063187.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-04
下一篇2023-05-04

发表评论

登录后才能评论

评论列表(0条)

    保存