JDBC(二)——批處理sql語句

文章目錄

事務

一組要麼同時執行成功,要麼同時執行失敗的sql語句,是數據庫操作的執行單元

事務結束於:

  • 執行commit或rollback語句。
  • 執行一條DLL語句,例如create table語句;在這種情況下,會自動執行commit語句。
  • 執行一條DCL語句,例如GRANT語句;在這種情況下,會自動執行commit語句.
  • 斷開與數據庫的連接。
  • 執行了一條DML語句,該語句卻失敗了;在這種情況中,會爲這個無效的DML語句執行ROLLBACK語句。

事務四大特點:

  • atomicity(原子性)
  • consistency(一致性)
  • isolation(隔離性)
  • durability(持久性)

批處理

對於處理大量的數據,建議使用Statement,因爲PreparedStatement的預編譯空間有限,當數據量特別大時,會發生異常。
在批處理之前把事務設置爲手動提交。

Class.forName("com.mysql.cj.jdbc.Driver");
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/testjdbc?serverTimezone=UTC","root","root");
con.setAutoCommit(false);//事務設置爲手動提交
stmt = con.createStatement();

long start = System.currentTimeMillis();
for(int i = 0;i < 20000;i++){
	stmt.addBatch("insert into student values (" + (i + 10000) + ",'www','123')");
}
stmt.executeBatch();
con.commit();//手動提交
long end = System.currentTimeMillis();
System.out.println("插入20000條數據所要的時間爲:" + (end - start) + "ms");//需要2s
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章