程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> sql2005 批量更新問題的解決方法

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

編輯:關於SqlServer
首先注意Statement 和PreparedStatement的問題
Statement sm = cn.createStatement();
sm.addBatch(sql1);
sm.addBatch(sql2);
...
sm.executeBatch()
用Statement的好處就是每次可以直接傳一個SQL語句進去,不用管那麼多。可是在數據量比較大的時候,應該會對效率有影響。不建議使用。
PreparedStatement ps = cn.preparedStatement(sql);
{
 ps.setXXX(1,xxx);
 ...
 ps.addBatch();
}
ps.executeBatch();
PreparedStatement是會預編譯的,只要一條SQL,不斷動態設值,然後addBatch(),在數據量大的時候比較好,非常建議使用。
還有就是JDBC的驅動問題,很多同志可能還是在用2000的驅動呢,沒有用批量更新的程序沒有多大問題,可是一旦用了批量更新,出現很多問題,
反正數據庫很卡,慢。還可以更新不了哦。
我強烈建議大家更新JDBC驅動。
但是如果出現
SQLServerException: sp_cursoropen/sp_cursorprepare: 該語句參數只能是一個批或帶有單個 SELECT 語句的存儲過程,且不帶 FOR BROWSE、COMPUTE BY 或變量賦值。
應該就是JDBC的版本問題,1.0的驅動有這個問題,好像不支持批量更新,我建議大家使用1.2
我測試過了,完全沒有問題!
提供一些數據連接參數
jdbc.driverClassName:com.microsoft.sqlserver.jdbc.SQLServerDriver
jdbc.url:jdbc:sqlserver://127.0.0.1:1444;databaseName=fax;selectMethod=cursor;
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved