迟到的模仿:JDBC 3.0 RowSet,类似于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 (
1107
);  
          crowset.updateDate (
2new 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 (); 
   }
  }
 }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值