主頁 > 知識庫 > sql2005 批量更新問題的解決方法

sql2005 批量更新問題的解決方法

熱門標(biāo)簽:地方門戶網(wǎng)站 百度競價排名 網(wǎng)站排名優(yōu)化 鐵路電話系統(tǒng) AI電銷 服務(wù)外包 Linux服務(wù)器 呼叫中心市場需求
首先注意Statement 和PreparedStatement的問題
Statement sm = cn.createStatement();
sm.addBatch(sql1);
sm.addBatch(sql2);
...
sm.executeBatch()
用Statement的好處就是每次可以直接傳一個SQL語句進去,不用管那么多??墒窃跀?shù)據(jù)量比較大的時候,應(yīng)該會對效率有影響。不建議使用。
PreparedStatement ps = cn.preparedStatement(sql);
{
 ps.setXXX(1,xxx);
 ...
 ps.addBatch();
}
ps.executeBatch();
PreparedStatement是會預(yù)編譯的,只要一條SQL,不斷動態(tài)設(shè)值,然后addBatch(),在數(shù)據(jù)量大的時候比較好,非常建議使用。
還有就是JDBC的驅(qū)動問題,很多同志可能還是在用2000的驅(qū)動呢,沒有用批量更新的程序沒有多大問題,可是一旦用了批量更新,出現(xiàn)很多問題,
反正數(shù)據(jù)庫很卡,慢。還可以更新不了哦。
我強烈建議大家更新JDBC驅(qū)動。
但是如果出現(xiàn)
SQLServerException: sp_cursoropen/sp_cursorprepare: 該語句參數(shù)只能是一個批或帶有單個 SELECT 語句的存儲過程,且不帶 FOR BROWSE、COMPUTE BY 或變量賦值。
應(yīng)該就是JDBC的版本問題,1.0的驅(qū)動有這個問題,好像不支持批量更新,我建議大家使用1.2
我測試過了,完全沒有問題!
提供一些數(shù)據(jù)連接參數(shù)
jdbc.driverClassName:com.microsoft.sqlserver.jdbc.SQLServerDriver
jdbc.url:jdbc:sqlserver://127.0.0.1:1444;databaseName=fax;selectMethod=cursor;

標(biāo)簽:蘭州 銅川 湘潭 湖南 仙桃 黃山 衡水 崇左

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《sql2005 批量更新問題的解決方法》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266