在批量更新 SQL 操作的時候建議使用 Statement 接口裏的addBatch,這樣效率是高些,數據量越大越能體現出來
import java.sql.Connection;
import java.sql.Date;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
/*
* 批量更新Statement中addBatch方法
* */
public class addBatch{
public static void main(String[] args) {
String url = "jdbc:oracle:thin:@localhost:1521:orcl";
String user = "caj";
String password = "123456";
Connection con = null;
java.sql.Statement st = null;
try {
Class.forName("oracle.jdbc.OracleDriver");
con = DriverManager.getConnection(url, user, password);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
con.setAutoCommit(false);
st = con.createStatement();
st.addBatch("insert into temp(eno,ename,mytime) values('43','sun59',to_date('1982/03/23','yyyy/mm/dd'))");
st.addBatch("insert into temp(eno,ename,mytime) values('42','sun60',to_date('1982/03/23','yyyy/mm/dd'))");
//st.addBatch("insert into temp(eno,ename,mytime) values('7948','sun9','1982-03-23')");//該句文字與格式字符串不匹配 回滾 不執行更新
st.addBatch("insert into temp(eno,ename,mytime) values('44','sun10',to_date('1982/03/23','yyyy/mm/dd'))");
st.addBatch("insert into temp(eno,ename,mytime) values('45','sun11',to_date('1982/03/23','yyyy/mm/dd'))");
st.executeBatch();
con.commit();
} catch (SQLException e) {
System.out.println("=========");
try {
con.rollback();
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
}