服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

jdbc 3.0 rowset, 类似于windows中ado的编程方式

     jdbc有够慢的,出到了3.0了才有个rowset能类似于windows下ado的概念,却还是达不到ado.net的水平。幸亏java里orm这块比较争气,趁着c#的objectspace跳票,可以继续耀武扬威。

     rowset对比于resultset,除了不用保持connecton外,更重要特点是能够类似于ado的编程方式,直接对row赋值来进行insert与update, 而不用写sql语句。   在windows编程中经常可见这种模式,特别是ado.net用的好时,orm也只能算是锦上添花....

     在oracle的sample代码中,rowset02.java完整demo了rowset的ado模式。
     简化后的代码如下:


public class rowset02 {
  public static void main (string []args)
  {
   try
    {
      oraclecachedrowset crowset = new oraclecachedrowset ();
    
      crowset.seturl (java:oracle:oci8:@);
      crowset.setusername ("hr");
      crowset.setpassword ("hr");
    
      /*select*/
      crowset.setcommand ("select seatno, tdate, name, class from reservation");
      crowset.execute ();

      system.out.println ("seat no  travel date  name   class");
      while (crowset.next ())
      {
        printrow (crowset);
      }

      crowset.setreadonly (false);

      /*update*/
      crowset.beforefirst ();
      if (crowset.absolute (2))
      {
        crowset.updatestring (4, "business");
        crowset.updaterow ();
      }

      /*insert*/    
      crowset.beforefirst ();
      crowset.movetoinsertrow ();
      crowset.updateint (1, 107);
      crowset.updatedate (2, new date (975915381774l));
      crowset.updatestring (3, "pluto");
      crowset.insertrow ();
   
      /*delete*/
      crowset.beforefirst ();
      if (crowset.absolute (6))
      {
        crowset.deleterow ();
      }

     
      crowset.acceptchanges ();
      crowset.close ();

     
    }catch (sqlexception ea)
    {
      ea.printstacktrace ();
    }
  }

 
}

扫描关注微信公众号