JDBC 復習4 批量執行SQL
阿新 • • 發佈:2017-11-29
pre bat 機制 tint close .sql str 執行效率 batchsql
1使用jdbc進行批量執行SQL在實際的項目開發中,有時候需要向數據庫發送一批SQL語句執行,這時應避免向數據庫一條條的發送執行,而應采用JDBC的批處理機制,以提升執行效率。
package dbex.mysql; import java.io.IOException; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.Date; import dbex.DBUtil; public class BatchSQL { /** * @throws IOException * @throws SQLException * @Title: doBatch * @Description: 使用JDBC進行批處理操作 * @param * @throws */ void doBatch() throws SQLException, IOException{ Connection conn=DBUtil.getConnection(); PreparedStatement ppst = null; ResultSet rs = null; try { long startTime = System.currentTimeMillis(); ppst = conn.prepareStatement("insert into clob values(?,‘this is a test for batch sql‘)"); for (int i = 222; i < 100222; i++) { ppst.setInt(1, i); ppst.addBatch(); } ppst.executeBatch(); long endTime = System.currentTimeMillis(); System.out.println(new Date().toLocaleString()+ "執行批量一共耗時"+(endTime-startTime)/1000+"s"); } catch (Exception e) { e.printStackTrace(); }finally{ DBUtil.closeAll(conn, ppst, rs); } } public static void main(String[] args) throws SQLException, IOException { new BatchSQL().doBatch(); } }
優點
SQL是預編譯之後的 執行效率有保證
缺點
這種形式只能應用在批量的插入數據或者批量更新的情況下
JDBC 復習4 批量執行SQL