日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

批量处理jdbc语句提高处理速度

發(fā)布時間:2024/8/22 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 批量处理jdbc语句提高处理速度 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
有時候jdbc運行得不夠快,這使得有些程序員使用數(shù)據(jù)庫相關的存儲過程。作為一個替代方案,可以試試使用statement?的批量處理特性看看能否同時執(zhí)行所有的sql以提高速度。?存儲過程的最簡單的形式就是包含一系列sql語句的過程,將這些語句放在一起便于在同一個地方管理也可以提高速度。statement?類可以包含一系列sql語句,因此允許在同一個數(shù)據(jù)庫事務執(zhí)行所有的那些語句而不是執(zhí)行對數(shù)據(jù)庫的一系列調(diào)用。?使用批量處理功能涉及下面的兩個方法:???addbatch(string)?方法???executebatch方法?如果你正在使用statement?那么addbatch?方法可以接受一個通常的sql語句,或者如果你在使用preparedstatement?,那么也可以什么都不向它增加。executebatch?方法執(zhí)行那些sql語句并返回一個int值的數(shù)組,這個數(shù)組包含每個語句影響的數(shù)據(jù)的行數(shù)。如果將一個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語法,但是可以有很多參數(shù),因此重寫上面的范例的一部分就可以得到下面的結果:?//?注意這里沒有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個用戶,那么性能就有影響,如果某個人寫了一個腳本添加一萬個用戶,程序可能變得很糟糕。添加批處理功能就可以幫助提高性能,而且在后面的那種情況下代碼的可讀性也更好。?

轉載于:https://www.cnblogs.com/kangderui/archive/2009/12/30/1635636.html

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的批量处理jdbc语句提高处理速度的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。