使用JDBC進行批處理

2021-09-01 20:20:41 字數 2354 閱讀 1012

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

l實現批處理有兩種方式,第一種方式:

•statement.addbatch

(sql

)l執行批處理sql語句

•executebatch

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

•clearbatch

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

connection

conn

=null;

statement

st=null;

resultset

rs=null;

tryfinally

l採用statement.addbatch

(sql

)方式實現批處理:

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

•缺點: •

sql語句沒有預編譯。

•當向資料庫傳送多條語句相同,但僅引數不同的

sql語句時,需重複寫上很多條

sql語句。例如:

insert into user(

name,password

) values(『aa』,』111』);

insert into user(

name,password

) values(『bb』,』222』);

insert into user(

name,password

) values(『cc』,』333』);

insert into user(

name,password

) values(『dd』,』444』);

l實現批處理的第二種方式: •

preparedstatement.addbatch()

conn

= jdbcutil.

getconnection

();

string

sql= "insert into user(

name,password,email,birthday

) values(?,?,?,?)";

st= conn.preparestatement

(sql);

for(inti

=0;i<50000;i++)

}st.executebatch

();

l採用preparedstatement.addbatch

()實現批處理

•優點:傳送的是預編譯後的

sql語句,執行效率高。

•缺點:只能應用在

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

混合模式

/** 

* 批量執行混合模式的sql、有預定義的,還有靜態的

*/ public static void exebatchmixedsql() catch (sqlexception e) finally

}

executebatch

()會返回int陣列,表示影響的行數,

在用oracle時,他總返回-2,驅動不支援。

有這麼乙個方法,可以試下,但他不通用啊,

6、在成批處理重複的插入或更新操作中使用preparedstatement物件

如果成批地處理插入和更新操作,就能夠顯著地減少它們所需要的時間。oracle提供的statement和 callablestatement並不真正地支援批處理,只有preparedstatement物件才真正地支援批處理。我們可以使用addbatch()和executebatch()方法選擇標準的jdbc批處理,或者通過利用preparedstatement物件的setexecutebatch()方法和標準的executeupdate()方法選擇速度更快的oracle專有的方法。要使用oracle專有的批處理機制,可以以如下所示的方式呼叫setexecutebatch():

preparedstatement pstmt3d null;

try  

呼叫setexecutebatch()時指定的值是乙個上限,當達到該值時,就會自動地引發sql命令執行,標準的executeupdate()方法就會被作為批處理送到資料庫中。我們可以通過呼叫preparedstatement類的sendbatch()方法隨時傳輸批處理任務。

使用JDBC進行批處理

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

使用JDBC進行批處理

當我們需要向資料庫傳送一批sql語句執行時,應避免向資料庫一條條的傳送執行,而應採用jdbc的批處理機制,以提公升執行效率 有兩種方式實現批處理 1.使用statement statement.addbatch sql 方法 新增sql語句 executebatch 方法 執行批處理命令 clear...

使用JDBC進行批處理

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