ResultSet怎么用
在Java中,获得ResultSet的总行数的方法有以下几种。
第一种:利用ResultSet的getRow方法来获得ResultSet的总行数
Java代码
Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
ResultSet rt = stmt.executeQuery("lect * from yourTableName");
rt.last();
int rowCount = rt.getRow(); //获得ResultSet的总行数
Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE); ResultSet rt = stmt.executeQuery("lect * from yourTableName"); rt.last(); int rowCount = rt.getRow(); //获得ResultSet的总行数第二种:利用循环ResultSet的元素来获得ResultSet的总行数
Java代码
ResultSet rt = stmt.executeQuery("lect * from yourTableName");
int rowCount = 0;
while(rt.next()) {
rowCount++;
}
ResultSet rt = stmt.executeQuery("lect * from yourTableName"); int rowCount = 0; while(rt.next()) { rowCount++; }rowCount就是ResultSet的总行数。
第三种:利用sql语句中的count函数获得ResultSet的总行数
Java代码
ResultSet rt = stmt.executeQuery("lect count(*) totalCount from yourTableName");
int rowCount = 0;
if(rt.next()) {
rowCount=rt .getInt("totalCount ");
}
ResultSet rt = stmt.executeQuery("lect count(*) totalCount from yourTableName"); int rowCount = 0; if(rt.next()) { rowCount=rt .getInt("totalCount "); }rowCount就是ResultSet的总行数。
• Java中获得ResultSet的总列数是非常简单事情,因为Java中ResultSet提供了ResultSetMetaData工具类,ResultSetMetaData 是ResultSet的元数据的集合说明。
java获得ResultSet总列数的代码如下:
Java代码
Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
ResultSet rt = stmt.executeQuery("lect * from yourtable");
ResultSetMetaData rsmd = rt.getMetaData() ;
int columnCount = rsmd.getColumnCount();
Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE); ResultSet rt = stmt.executeQuery("lect * from yourtable"); ResultSetMetaData rsmd = rt.getMetaData() ; int columnCount = rsmd.getColumnCount();columnCount 就是ResultSet的总列数。
可滚动的ResultSet是什么意思 请帮我举个例子 谢谢
这个类型支持前后滚动取得纪录next()、previous(),回到第一行first(),同时还支持要去的ResultSet中的第几行absolute(int n),以及移动到相对当前行的第几行relative(int n),要实现这样的ResultSet在创建Statement时用如下的方法。
Statement st = conn.createStatement(int resultSetType, int resultSetConcurrency)
ResultSet rs = st.executeQuery(sqlStr)
其中两个参数的意义是:
resultSetType是设置ResultSet对象的类型可滚动,或者是不可滚动。取值如下:
ResultSet.TYPE_FORWARD_ONLY只能向前滚动
ResultSet.TYPE_SCROLL_INSENSITIVE和Result.TYPE_SCROLL_SENSITIVE这两个方法都能够实现任意的前后滚动,使用各种移动的ResultSet指针的方法。二者的区别在于前者对于修改不敏感,而后者对于修改敏感。
resultSetConcurency是设置ResultSet对象能够修改的,取值如下:
ResultSet.CONCUR_READ_ONLY 设置为只读类型的参数。
ResultSet.CONCUR_UPDATABLE 设置为可修改类型的参数。
所以如果只是想要可以滚动的类型的Result只要把Statement如下赋值就行了。
Statement st = conn.createStatement(Result.TYPE_SCROLL_INSENITIVE,
ResultSet.CONCUR_READ_ONLY);
ResultSet rs = st.excuteQuery(sqlStr);
关于ResultSet
ResultSet
rs
=
getStatement().executeQuery(sql);
//执行查询语句
rs.moveToInrtRow();
//移动游标到所要插的行!或者叫指针
rs.updateString("Fcode",
frmValue[i][0]);
//修改值
rs.updateString("Fname",
frmValue[i][1]);
rs.updateString("FdescCode",
frmValue[i][2]);
rs.updateString("Ftype",
frmValue[i][3]);
//执行所要修改的内容
rs.inrtRow();
resultt中是数据吗
结果集(ResultSet)是数据中查询结果返回的一种对象,可以说结果集是一个存储查询结果的对象,但是结果集并不仅仅具有存储的功能,他同时还具有操纵数据的功能,可能完成对数据的更新等。
ResultSet是一个结果集,怎么获得里面的数据
只有一个参数的话,百if(rs.next())先判断一下,然后就看你存放的是什么类型的数据了,那个src是String类型的还是URL类型的?rs.getString(1)或者rs.getURL(1)来得到该数据的引用。在ResultSet中取数据之前都要使用rs.next()方法,一个数据的话就是if(rs.next());多个数据的话就是while(rs.next())。每次读出数据后结果集的游标自动下移。鉴于你所说只有一个参数,那么列的度索引就应该是一。
java中Result和ResultSet的区别,各有什么优点?
二者的区别在于前者对于修改不敏感,而后者对于修改敏感
resultSetConcurency是设置ResultSet对象能够修改的,取值如下:
ResultSet.CONCUR_READ_ONLY 设置为只读类型的参数。
ResultSet.CONCUR_UPDATABLE 设置为可修改类型的参数。
以下两种方法的共性:返回可滚动的结果集,当数据库变化时,当前结果集同步改变。
不可用结果集更新数据库:
con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
可用结果集直接更新数据库:
con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATETABLE);