在Java中,如何通过在数据库得到的结果集得到表的列数和行数?

在Java中,如何通过在数据库得到的结果集得到表的列数和行数?,第1张

在Java中,获得ResultSet的总行数方法有以下几种。

第一种:利用ResultSet的getRow方法来获得ResultSet的总行数

Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE)

ResultSet rset = stmt.executeQuery("select * from yourTableName")

rset.last()

int rowCount = rset.getRow()//获得ResultSet的总行数

第二种:利用循环ResultSet的元素来获得ResultSet的总行数

ResultSet rset = stmt.executeQuery("select * from yourTableName")

int rowCount = 0

while(rset.next()) {

rowCount++}rowCount就是ResultSet的总行数。

(1)首先使用last()方法,将数据库游标定位到记录集的最后一行。

(2)使用getRow()方法,返回记录集最后一行的行索引。该索引就等于记录集所包含记录的个数,也就是记录集的行数。getRow()方法是在JDBC API 2.0中才定义的,在JDBC API 1.0中没有这个方法。

假如你的搜索结果放在rs里面,如下面这条语句所示:

ResultSet rs = db.executeQuery(sql)

那么rs.next()这个函数就能判断是否已经到最后一行,下面是JDK文档里面关于next()这个方法的详细解释:

boolean next()

throws SQLException将光标从当前位置向前移一行。ResultSet 光标最初位于第一行之前;第一次调用 next

方法使第一行成为当前行;第二次调用使第二行成为当前行,依此类推。

当调用 next 方法返回 false 时,光标位于最后一行的后面。任何要求当前行的

ResultSet 方法调用将导致抛出 SQLException。如果结果集的类型是

TYPE_FORWARD_ONLY,则其 JDBC 驱动程序实现对后续 next 调用是返回

false 还是抛出 SQLException 将由供应商指定。

如果对当前行开启了输入流,则调用 next 方法将隐式关闭它。读取新行时,将清除 ResultSet

对象的警告链。

返回:如果新的当前行有效,则返回 true;如果不存在下一行,则返回 false抛出:SQLException -

如果发生数据库访问错误或在关闭的结果集上调用此方法


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

原文地址: http://outofmemory.cn/sjk/10648316.html

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

发表评论

登录后才能评论

评论列表(0条)

保存