ResultSet 如果没有记录返回什么

ResultSet 如果没有记录返回什么

本文目录

  • ResultSet 如果没有记录返回什么
  • ResultSet怎么用
  • 可滚动的ResultSet是什么意思 请帮我举个例子 谢谢
  • java中Result和ResultSet的区别,各有什么优点
  • 在编写访问数据库的JAVA程序时,ResultSet对象的作用
  • java里面 resultset能够作为函数的返回值吗
  • 关于ResultSet
  • 怎么遍历ResultSet中的数据
  • ResultSet中如何判断和删除记录
  • ResultSet是一个结果集,怎么获得里面的数据

ResultSet 如果没有记录返回什么


返回result对象拉!不会返回null!
如果你想知道有没有数据!
//这里如果你想返回的是一行数据就用if反之就用while循环
//如果你不想要输出结果只想知道有没有记录if最好了哦
//next() 本身就可以判断有没有数据
然后if(rs.next()){
//输出结果集;
}
else
{
//结果集为空;
}
///////要给我分哦!我回答的非常正确啊!是绝对正确!呵呵.......

ResultSet怎么用


在Java中,获得ResultSet的总行数的方法有以下几种。
第一种:利用ResultSet的getRow方法来获得ResultSet的总行数
Java代码
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的总行数
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的总行数
Java代码
ResultSet rset = stmt.executeQuery(“select * from yourTableName“);
int rowCount = 0;
while(rset.next()) {
rowCount++;
}
ResultSet rset = stmt.executeQuery(“select * from yourTableName“); int rowCount = 0; while(rset.next()) { rowCount++; }rowCount就是ResultSet的总行数。
第三种:利用sql语句中的count函数获得ResultSet的总行数
Java代码
ResultSet rset = stmt.executeQuery(“select count(*) totalCount from yourTableName“);
int rowCount = 0;
if(rset.next()) {
rowCount=rset .getInt(“totalCount “);
}
ResultSet rset = stmt.executeQuery(“select count(*) totalCount from yourTableName“); int rowCount = 0; if(rset.next()) { rowCount=rset .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 rset = stmt.executeQuery(“select * from yourtable“);
ResultSetMetaData rsmd = rset.getMetaData() ;
int columnCount = rsmd.getColumnCount();
Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE); ResultSet rset = stmt.executeQuery(“select * from yourtable“); ResultSetMetaData rsmd = rset.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);

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);

在编写访问数据库的JAVA程序时,ResultSet对象的作用是


ResultSet:完成了查询结果的存储功能,而且只能读去一次,不能够来回的滚动读取。   返回的是一个结果集,可以通过方法next()逐一获取从数据库取到的值

java里面 resultset能够作为函数的返回值吗


  java里面的ResultSet是可以作为函数的返回值的,这个函数返回一个ResultSet对象,具体示例代码如下:

public class Demo {
    public static void main(String args) {
        
    }
    private ResultSet getNum(){//返回值为ResultSet的函数
        ResultSet rs = null;
        return rs;
    }
}

  ResultSet是数据库结果集的数据表,通常通过执行查询数据库的语句生成。


关于ResultSet


ResultSet
rs
=
getStatement().executeQuery(sql);
//执行查询语句
rs.moveToInsertRow();
//移动游标到所要插的行!或者叫指针
rs.updateString(“Fcode“,
frmValue[i]);
//修改值
rs.updateString(“Fname“,
frmValue[i]);
rs.updateString(“FdescCode“,
frmValue[i]);
rs.updateString(“Ftype“,
frmValue[i]);
//执行所要修改的内容
rs.insertRow();

怎么遍历ResultSet中的数据


得到ResuleSet 接口实现对象后
如果只有一条数据就if多条就用while看需求。ResultSet中遍历是用.next()方法,这个方法是和遍例器不一样,判断的是一行,就是说下一行有没有值(注意针对的是原表),而且它会自动的把光标向下移动一行,可以说实现了遍例器的hasNext和next。如果有下一行就可以用getXXX()取值了,XXX这个也是针对原表的你是什么类型就写什么类型,括号里面可以写index或者直接写列名,注意是从1开始算的。看你自己要一行的多少数据就get几下,反正下一次循环光标会向下一行移动,一直判断到没有行位置循环结束。最后记得关闭三个接口。

ResultSet中如何判断和删除记录


最好的办法是修改SQL语句,保证结果集是正确的。
如果不行的话,那就考虑下面的办法:
JDBC返回的ResultSet是只读的,不能修改和删除的,因此,如果需要保留ResultSet接口形式的话,那么就需要重新实现一个ResultSet接口。当然,如果不需要保留的话,就简单了。最傻的方法就是循环比较就能实现。
实现ResultSet有两种办法,第一种是首先把数据从ResultSet取出来,筛选后,保存在List或其他数据中,然后包装一个ResultSet。
第二种办法稍好一些,采用代理的方式,就是创建一个新的类如:FilteredResultSet 实现ResultSet接口。
FilteredResultSet implements ResultSet
{
ResultSet rawResultSet ;
}
ResultSet的大部分方法都直接代理就行,
假如结果集中的Orderby 条件是 order by A , B desc
也就是说,B=1的数据一定出现在B=-1的数据前面的话,就比较简单了。
只需要改写hasNext () 函数
private object lastAValue = null ;
boolean hasNext ()
{
while (rawResultSet.hasNext ())
{
// Get Cloum A
Object colAValue = getObject (“A“) ;
// 检查colAValue是否和上一次记录的lastAValue相等?
if (! colAValue.equals (lastAValue ()))
{
lastAValue = colAValue ;
return true ;
}
// 这时B的值一定是-1了。。
直接跳过就行了。
}
}

ResultSet是一个结果集,怎么获得里面的数据


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

免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部