📄 batchdemo.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 + -