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...