使用JDBC進行批處理

2021-07-22 23:44:37 字數 1163 閱讀 1806

當我們需要向資料庫傳送一批sql語句執行時,應避免向資料庫一條條的傳送執行,而應採用jdbc的批處理機制,以提公升執行效率

有兩種方式實現批處理:

1.使用statement

statement.addbatch(sql)方法:新增sql語句 

executebatch

()方法:執行批處理命令

clearbatch

()方法:清除批處理命令

優點:可以向資料庫傳送多條不同的sql語句。

缺點:

sql語句沒有預編譯。

當向資料庫傳送多條語句相同,但僅引數不同的sql語句時,需重複寫上很多條sql語句,如:

insert into student(id,name) values(1,』aa』);

insert into student(id,name) values(2,』bb』);

insert into student(id,name) values(3,』cc』);

2.使用preparedstatement

preparedstatement.addbatch()

例:

conn = jdbcutil.getconnection();

string sql = "insert into student(id,name) values(?,?)"

;st = conn.preparestatement(sql);

for(int i=0

;i<100;i++)}st

.executebatch();

優點:傳送的是預編譯後的sql語句,執行效率高。

缺點:只能應用在sql語句相同,但引數不同的批處理中。因此此種形式的批處理經常用於在同乙個表中批量插入資料,或批量更新表的資料。

另外,preparestatement在應用時相比於statement也有很多優點:

preperedstatement可以避免sql注入的問題。

statement會使資料庫頻繁編譯sql,可能造成資料庫緩衝區溢位。

preparedstatement可對sql進行預編譯,從而提高資料庫的執行效率。

並且preperedstatement對於sql中的引數,允許使用佔位符的形式進行替換,簡化sql語句的編寫。

使用JDBC進行批處理

業務場景 當需要向資料庫傳送一批sql語句執行時,應避免向資料庫一條條的傳送執行,而應採用jdbc的批處理機制,以提公升執行效率。實現批處理有兩種方式 第一種方式 使用 statement.addbatch sql connection conn jdbcutil.getconnection str...

使用JDBC進行批處理

當需要向資料庫傳送一批sql語句執行時,應避免向資料庫一條條的傳送執行,而應該採用jdbc的批處理機制,以提公升執行效率。方式一 statement.addbatch sql 可以傳送不同的sql語句 執行sql語句的方法 executebatch 清除批處理命令的方法 clearbatch con...

使用JDBC進行批處理

l業務場景 當需要向資料庫傳送一批sql語句執行時,應避免向資料庫一條條的傳送執行,而應採用jdbc的批處理機制,以提公升執行效率。l實現批處理有兩種方式,第一種方式 statement.addbatch sql l執行批處理sql語句 executebatch 方法 執行批處理命令 clearba...