ResultSet常用方法(转)

ResultSet常用方法(转)

JDBC 2009-07-08 15:05:06 阅读547 评论0 字号:

ResultSet常用方法 JDBC   2.0   API  为结果集增加了两个新的基本能力:可滚动性和可更新性。 

在滚动结果集中可用的方法有:        

rs.previous();//向前滚动        

rs.next();//向后滚动        

rs.getRow();//得到当前行号        

rs.absolute(n);//光标定位到n行        

rs.relative(int   n);//相对移动n行        

rs.first();//将光标定位到结果集中第一行。        

rs.last();//将光标定位到结果集中最后一行。        

rs.beforeFirst()//将光标定位到结果集中第一行之前。        

rs.afterLast();//将光标定位到结果集中最后一行之后。        

rs.moveToInsertRow();//光标移到插入行        

rs.moveToCurrentRow();//光标移回到调用

rs.moveToInsertRow()方法前光标所在行        

//测试光标位置        

rs.isFirst()        

rs.isLast()        

rs.isBeforeFirst()        

rs.isAfterLast()     
 
例子:

import java.sql.*;

public class TestScroll {

 public static void main(String args[]) {

  try {

   new oracle.jdbc.driver.OracleDriver();

   String url = "jdbc:oracle:thin:@192.168.0.1:1521:SXT";

   Connection conn = DriverManager

     .getConnection(url, "scott", "tiger");

   Statement stmt = conn.createStatement(

     ResultSet.TYPE_SCROLL_INSENSITIVE,

     ResultSet.CONCUR_READ_ONLY);

   ResultSet rs = stmt

     .executeQuery("select * from emp order by sal");

   rs.next();

   System.out.println(rs.getInt(1));

   rs.last();

   System.out.println(rs.getString(1));

   System.out.println(rs.isLast());

   System.out.println(rs.isAfterLast());

   System.out.println(rs.getRow());

   rs.previous();

   System.out.println(rs.getString(1));

   rs.absolute(6);

   System.out.println(rs.getString(1));

   rs.close();

   stmt.close();

   conn.close();

  } catch (SQLException e) {

   e.printStackTrace();

  }

 }

}

   

在可更新结果集中可用的方法有:(单表)        

rs.insertRow();//把插入行加入数据库和结果集        

rs.deleteRow();//从数据库和结果集中删除当前行        

rs.updateXXX(int   column,XXX   data);XXX代表int/double/String/Date中类型之一 

rs.updateXXX(String   columnName,String   Data);    //以上两个方法更新结果集当前行        

rs.updateRow();//更新内容发送到更新数据库

例子:
import java.sql.*;
public class TestUpdataRs {
    public static void main(String args[]){
 
 try{
     new oracle.jdbc.driver.OracleDriver();
     String url="jdbc:oracle:thin:@192.168.0.1:1521:SXT";
     Connection conn=DriverManager.getConnection(url,"scott","tiger");
     Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
    
     ResultSet rs=stmt.executeQuery("select * from emp2");
    
     rs.next();
     //更新一行数据
     rs.updateString("ename","AAAA");
     rs.updateRow();

     //插入新行
     rs.moveToInsertRow();
     rs.updateInt(1, 9999);
     rs.updateString("ename","AAAA");
     rs.updateInt("mgr", 7839);
     rs.updateDouble("sal", 99.99);
     rs.insertRow();
     //将光标移动到新建的行
     rs.moveToCurrentRow();
     //删除行
     rs.absolute(5);
     rs.deleteRow();
     //取消更新
     //rs.cancelRowUpdates();
   }catch(SQLException e){
     e.printStackTrace();
   }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值