WEB开发网
开发学院WEB开发Jsp JDBC 3.0 RowSet, 类似于windows中ADO的编程方式 阅读

JDBC 3.0 RowSet, 类似于windows中ADO的编程方式

 2008-01-05 18:31:05 来源:WEB开发网   
核心提示: JDBC有够慢的,出到了3.0了才有个Rowset能类似于windows下ADO的概念,JDBC 3.0 RowSet, 类似于windows中ADO的编程方式,却还是达不到ADO.net的水平,幸亏java里ORM这块比较争气,非凡是ADO.net用的好时,ORM也只能算是锦上添花.... 在Oracle的samp

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

 
}


Tags:JDBC RowSet 类似

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接