如何获取ResultSet的行数和列数

如何获取ResultSet的行数和列数,第1张

java获取ResultSet的行数列数

import JavasqlConnection;

import javasqlResultSet;

import javasqlSQLException;

public class ResultSetTest {

public static void main(String[] args) {

Connection con;

try {

//获取数据库连接

con = DBUtilgetConnection("69");

//设置查询语句

String sql = "select from 表名 ";

//设计结果集为可滚动

javasqlPreparedStatement pst = conprepareStatement(sql,

ResultSetTYPE_SCROLL_INSENSITIVE,ResultSetCONCUR_READ_ONLY);

javasqlResultSet rs = pstexecuteQuery();

//获取结果集的列数

Systemoutprintln(rsgetMetaData()getColumnCount());

//将结果集滚动到最后一个

rslast();

//获取结果集当前行数

Systemoutprintln(rsgetRow());

} catch (SQLException e) {

eprintStackTrace();

}

}

}

不用执行select count(),直接用下边的方法,执行你的查询sql。然后通过指针来获取总记录数。

PreparedStatement

stmt = conprepareStatement

(sql,ResultSetTYPE_SCROLL_INSENSITIVE,ResultSetCONCUR_READ_ONLY);//

一定要有ResultSetTYPE_SCROLL_INSENSITIVE这个参数,不然指针不能滚动,下边的afterLast就不能用。

ResultSet rs = stmtexecute();

rsafterLast();//指针指向最后一条记录。

int num = rsgetRow();//获取总记录数。

rsbeforeFirst();//指针重新指向第一条记录。

//下边你可以循环取出你要的记录了。

另外建议多看下api,很多人都是PreparedStatement

stmt = conprepareStatement(sql)写的,其实通过增加ResultSetTYPE_SCROLL_INSENSITIVE参数就可以 通过滚动指针来获取记录数,并且可以直接遍历查询的结果。

只有一个参数的话,百if(rsnext())先判断一下,然后就看你存放的是什么类型的数据了,那个src是String类型的还是URL类型的?rsgetString(1)或者rsgetURL(1)来得到该数据的引用。在ResultSet中取数据之前都要使用rsnext()方法,一个数据的话就是if(rsnext());多个数据的话就是while(rsnext())。每次读出数据后结果集的游标自动下移。鉴于你所说只有一个参数,那么列的度索引就应该是一。

获取ResultSet行数时需要使用可回滚的游标,自定义方法,获取行数后要回滚,获取ResultSet列数时通过ResultSetMetaData类的getColumnCount方法即可获得。

GetNumRows方法为获取行数的方法(参数为ResultSet)

//传入你的ResultSet

public static void printRS(ResultSet rs) throws SQLException

{

//检索此 ResultSet 对象的列的编号、类型和属性。

ResultSetMetaData rsmd = rsgetMetaData();

//得到当前的列数

int colCount = rsmdgetColumnCount();

while(rsnext()) { //while控制行数

for(int i = 1; i <= colCount; i++ ) {//for循环控制列数

if(i > 1) {

Systemoutprint(",");

}

//得到当前列的列名

String name = rsmdgetColumnName(i);

//得到当前列的值

String value = rsgetString(i);

Systemoutprint(name + "=" + value);

} Systemoutprintln();

}

}

以上就是关于如何获取ResultSet的行数和列数全部的内容,包括:如何获取ResultSet的行数和列数、java web项目,怎么获得数据库的返回条数、ResultSet是一个结果集,怎么获得里面的数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/web/9562877.html

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

发表评论

登录后才能评论

评论列表(0条)

保存