⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 batchdemo.java

📁 本套光盘提供了本书各章实例的所需的部分源程序文件以及数据库文件。读者 需要使用JDK 1.4(必需)版
💻 JAVA
字号:
import java.sql.SQLException;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import oracle.jdbc.driver.OracleConnection;
import oracle.jdbc.driver.OraclePreparedStatement;
import sqlj.runtime.ExecutionContext;
import sqlj.runtime.ref.DefaultContext;
import oracle.sqlj.runtime.Oracle;

//引入相应的包
/**This demo shows the SQLJ batch update feature. **/

public class BatchDemo {
   public static void main(String[] args) throws java.sql.SQLException
  {
   try{
     Oracle.connect(BatchDemo.class, "connect.properties");
     System.out.println("Connected.");
    
     try{
        #sql { DELETE FROM BATCH_DEMO };
     }
     catch (SQLException e) {
        System.out.println("A SQL exception occurred: "+e);
        System.out.println("Attempting to create the BATCH_DEMO table");
        try{
           #sql { DROP TABLE BATCH_DEMO };
        }
        catch (SQLException ex) { };
        try{
           #sql { CREATE TABLE BATCH_DEMO  (EMPNO     NUMBER(7), ENAME     VARCHAR2(20), HIREDATE  DATE, SAL  NUMBER(10, 2))
                };
        }
        catch (SQLException ex) {
           System.out.println("Unable to create the BATCH_DEMO table: "+ex);
           System.exit(1);
        };
     }
     System.out.println(">>> Inserting 100 records <<<<");
     batchUpdate(1,    100, 201, "test0" );
     batchUpdate(10,   100, 401, "test1" );
     batchUpdate(100,  100, 601, "test2" );
     batchUpdate(1000, 100, 801, "test3" );

     System.out.println(">>> Inserting 1000 records <<<<");
     batchUpdate(1,    1000, 2001, "test0" );
     batchUpdate(10,   1000, 4001, "test1" );
     batchUpdate(100,  1000, 6001, "test2" );
     batchUpdate(1000, 1000, 8001, "test3" );
    }
    finally{
      Oracle.close();
    }
    System.out.println("*** End of Demo ***");
  }        
  public static void batchUpdate(int batchSize, int updateSize, int start, String name)  throws java.sql.SQLException
  {
     if (batchSize==1) {
        System.out.print("Inserting one record at a time: "); System.out.flush();
     }
     else{
        System.out.print("Inserting in batch of "+batchSize+": "); System.out.flush();
     }
     long t = System.currentTimeMillis();
     ExecutionContext ec = new ExecutionContext();
     if (batchSize==1){
       ec.setBatching(false);
     }
     else{
       ec.setBatchLimit(batchSize);
       ec.setBatching(true);
     }

     for (int i=start; i<start+updateSize; i++)
     {#sql [ec] { insert into  batch_demo(empno, ename,hiredate, sal) values(:i, :(name+"_"+i), sysdate,  :i )
    };    
 }
     #sql {commit};
     System.out.println("Done in "+((System.currentTimeMillis()-t)/1000.0)+" seconds.");
 }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -