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是一个结果集,怎么获得里面的数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)