JDBC 复习4 批量执行SQL

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是预编译之后的 执行效率有保证

缺点

  • 这种形式只能应用在批量的插入数据或者批量更新的情况下
原文地址:https://www.cnblogs.com/humi/p/7919826.html