使用JDBC批量插入记录
它使用addBatch()和executeBatch()函数执行 方法。为此,我们可以先了解 JDBC 驱动程序。因此,为了使用Java连接到您的数据库,您需要一个 JDBC 驱动程序。每个数据库(MySQL、Oracle 等)都有自己的 JDBC 驱动程序,通常由数据库供应商构建并在数据库网站上找到。以 MySQL 数据库为例,您需要访问 MySQL 网站,下载 MySQL JDBC 驱动程序 .jar 文件(也称为 Connector/J),并将其添加到您的项目中。
现在让我们讨论它们操作的方法。所以,上面的两个方法分别是 addBatch()和executeBatch() 方法如下:
方法一: addBatch()
此方法在内部将参数值添加到批处理中。您现在可以添加另一组值,以插入到 SQL 语句中。一旦完整的批处理被发送到数据库,每组参数都被插入到 SQL 中并单独执行。
方法二: executeBatch()
调用此方法,执行所有批量更新。 SQL 语句加上参数集一次性发送到数据库。 executeBatch() 方法返回的 int[] 数组是一个 int 数组,表示批处理中每个执行的 SQL 语句影响了多少条记录。
语法:创建数据库
create table emp(eid varchar(200) unique,ename varchar(200)
例子:
Java
// Step 1: Importing DB(SQL) classes
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.Statement;
// Class
public class insertion {
// Main driver method
public static void main(String[] args) throws Exception
{
// Try block to check for exceptions
try {
// Step 2: Loading and registering drivers
// Loading drivers using forName() method
Class.forName("com.mysql.jdbc.Driver");
// Registering driver using DriverManager
Connection con = DriverManager.getConnection(
"jdbc:mysql://localhost/test", "root", "");
// Step 3: Create a statement
Statement st = con.createStatement();
String sql
= "insert into emp (eid,ename) values (?, ?)";
// Step 4: Execute the query
PreparedStatement pstmt;
pstmt = con.prepareStatement(sql);
final int batchSize = 5000;
int count = 0;
for (int i = 4000; i <= 4500; i++) {
pstmt.setString(1, "181FA0" + i);
pstmt.setString(2, "181FA0" + i);
pstmt.addBatch();
count++;
if (count % batchSize == 0) {
System.out.println("Commit the batch");
pstmt.executeBatch();
}
pstmt.executeBatch();
}
}
catch (Exception e) {
System.out.println("Error:" + e.getMessage());
}
}
}
输出:
eid ename 181FA04001 181FA04001 181FA04002 181FA04002 . . . . . . 181FA04500 181FA04500