有時候JDBC運行得不夠快,這使得有些程序員使用數據庫相關的存儲過程。作為一個替代方案,可以試試使用Statement 的批量處理特性看看能否同時執行所有的SQL以提高速度。
存儲過程的最簡 " /> 在线电影av,一区二区三区视频在线播放,国产三级视频在线

四虎精品视频-四虎精品成人免费网站-四虎黄色网-四虎国产视频-国产免费91-国产蜜臀97一区二区三区

批量處理JDBC語句提高處理速度


有時候JDBC運行得不夠快,這使得有些程序員使用數據庫相關的存儲過程。作為一個替代方案,可以試試使用Statement 的批量處理特性看看能否同時執行所有的SQL以提高速度。 
存儲過程的最簡單的形式就是包含一系列SQL語句的過程,將這些語句放在一起便于在同一個地方管理也可以提高速度。Statement 類可以包含一系列SQL語句,因此允許在同一個數據庫事務執行所有的那些語句而不是執行對數據庫的一系列調用。 
使用批量處理功能涉及下面的兩個方法: 
? addBatch(String) 方法 
? executeBatch方法 
如果你正在使用Statement 那么addBatch 方法可以接受一個通常的SQL語句,或者如果你在使用PreparedStatement ,那么也可以什么都不向它增加。executeBatch 方法執行那些SQL語句并返回一個int值的數組,這個數組包含每個語句影響的數據的行數。如果將一個SELECT語句或者其他返回一個ResultSet的SQL語句放入批量處理中就會導致一個SQLException異常。 
關于Java.sql.Statement 的簡單范例可以是: 
Statement stmt = conn.createStatement();
stmt.insert("DELETE FROM Users");
stmt.insert("INSERT INTO Users VALUES("rod", 37, "circle")");
stmt.insert("INSERT INTO Users VALUES("jane", 33, "triangle")");
stmt.insert("INSERT INTO Users VALUES("freddy", 29, "square")");
int[] counts = stmt.executeBatch(); 
PreparedStatement 有些不同,它只能處理一部分SQL語法,但是可以有很多參數,因此重寫上面的范例的一部分就可以得到下面的結果: 
// 注意這里沒有DELETE語句
PreparedStatement stmt = conn.prepareStatement(
"INSERT INTO Users VALUES(?,?,?)"
);



User[ ] users = ...;
for(int i=0; i<users.length; i++) {
stmt.setInt(1, users[i].getName());
stmt.setInt(2, users[i].getAge());
stmt.setInt(3, users[i].getShape());
stmt.addBatch( );
}
int[ ] counts = stmt.executeBatch(); 
如果你不知道你的語句要運行多少次,那么這是一個很好的處理SQL代碼的方法。在不使用批量處理的情況下,如果添加50個用戶,那么性能就有影響,如果某個人寫了一個腳本添加一萬個用戶,程序可能變得很糟糕。添加批處理功能就可以幫助提高性能,而且在后面的那種情況下代碼的可讀性也更好。 

jsp技術批量處理JDBC語句提高處理速度,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 奇骏车友会| 朱莉娅安| 在线黄网站| 最后的武士| 2024年怀男怀女表图| 稻森泉| 爱妃直播| 速度与激情15| 当他恋爱时| 长谷川未来| 电影喜剧明星演员表| 朱茵拍过的三级的电影| 游泳池play高h| 黎明电影| 爱情电影网aqdy| 郑楚一| 吴朋奉| 美女网站视频免费| 黄色网址在线免费播放| 散文诗二首批注| 日本电影家庭教师| 基础综合英语邱东林电子版答案| 侦探们的镇魂歌国语版在线观看| 王熙| 先后天八卦对照图| 色蝴蝶| 红色诗集手抄报简单又漂亮| 邓家佳电影| 拉字至上q世代| 风中花瓣| 变形金刚1普通话版| 电影《忠爱无言》| 欢乐钓鱼大师兑换码| 七十二小时| 浙江卫视回放观看入口| 嗯~啊~快点死我男男视频| 欠条怎么写才有法律效果| 金珠的电影全部免费观看| 又什么又什么四字成语| 李修蒙出生年月| 火花 电影|