JDBC 复习4 批量执行SQL

Posted 言非言

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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是预编译之后的 执行效率有保证

缺点

  • 这种形式只能应用在批量的插入数据或者批量更新的情况下

以上是关于JDBC 复习4 批量执行SQL的主要内容,如果未能解决你的问题,请参考以下文章

JDBC编程复习

java jdbc 执行sql语句批量操作问题

jdbc批量执行SQL insert 操作

Java年度总复习基础部分

Spring JDBC - 针对多个表的批量插入

Java:如何使用用于 Sql Server 的 java jdbc 执行带有标识列的批量插入