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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

JDBC批处理

發布時間:2023/12/31 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JDBC批处理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

JDBC實現批處理有兩種方式:statementpreparedstatement
先比較一下兩種方式的批處理:
1.采用Statement.addBatch(sql)方式實現批處理的優缺點
采用Statement.addBatch(sql)方式實現批處理:
優點:可以向數據庫發送多條不同的SQL語句。
缺點:SQL語句沒有預編譯。
當向數據庫發送多條語句相同,但僅參數不同的SQL語句時,需重復寫上很多條SQL語句。
2.采用PreparedStatement.addBatch()方式實現批處理的優缺點
采用PreparedStatement.addBatch()實現批處理
優點:發送的是預編譯后的SQL語句,執行效率高。
缺點:只能應用在SQL語句相同,但參數不同的批處理中。因此此種形式的批處理經常用于在同一個表中批量插入數據,或批量更新表的數據。

下面具體介紹一下:

一.使用Statement完成批處理

1.使用Statement對象添加要批量執行SQL語句,如下:

Statement.addBatch(sql1); Statement.addBatch(sql2); Statement.addBatch(sql3);

2、執行批處理SQL語句:Statement.executeBatch();
3、清除批處理命令:Statement.clearBatch();

1.1 使用Statement完成批處理范例

public void testJdbcBatchHandleByStatement(){Connection conn = null;Statement st = null;ResultSet rs = null;try{conn = JdbcUtils.getConnection();st = conn.createStatement();//添加要批量執行的SQLst.addBatch(sql1);st.addBatch(sql2);st.addBatch(sql3);st.addBatch(sql4);st.addBatch(sql5);st.addBatch(sql6);st.addBatch(sql7);//執行批處理SQL語句st.executeBatch();}catch (Exception e) {conn.rollback();e.printStackTrace();}finally{//清除批處理命令st.clearBatch();JdbcUtils.release(conn, st, rs);}}

二、使用PreparedStatement完成批處理

1.PerparedStatement在conn.prepareStatement(sql); 的時候需要將sql直接傳入。
2.添加批處理: pst.addBatch();

2.1 使用PreparedStatement完成批處理范例

public void testJdbcBatchHandleByPrepareStatement(){long starttime = System.currentTimeMillis();Connection conn = null;PreparedStatement pst = null;ResultSet rs = null;try{conn = JdbcUtils.getConnection();String sql = "insert into testbatch(id,name) values(?,?)";pst = conn.prepareStatement(sql);for(int i=1;i<1000008;i++){ //i=1000 2000pst.setInt(1, i);pst.setString(2, "aa" + i);pst.addBatch();if(i%1000==0){pst.executeBatch();pst.clearBatch();}}pst.executeBatch();}catch (Exception e) {e.printStackTrace();}finally{JdbcUtils.release(conn, pst, rs);}

參考文章

總結

以上是生活随笔為你收集整理的JDBC批处理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。