Java中的MySQL批量插入是指通过Java程序一次性向MySQL数据库中插入多条记录,而不是逐条插入。这种操作可以显著提高数据插入的效率。
Java中实现MySQL批量插入主要有以下几种方式:
addBatch()
和executeBatch()
方法:
这是最常用的批量插入方式,通过PreparedStatement
对象的addBatch()
方法将多条SQL语句添加到批处理中,然后使用executeBatch()
方法一次性执行。executeUpdate()
方法:
可以将多条插入语句拼接成一个大的SQL语句,然后通过executeUpdate()
方法执行。批量插入适用于以下场景:
以下是使用JDBC的addBatch()
和executeBatch()
方法实现批量插入的示例代码:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class BatchInsertExample {
public static void main(String[] args) {
String url = "jdbc:mysql://localhost:3306/mydatabase";
String user = "username";
String password = "password";
try (Connection conn = DriverManager.getConnection(url, user, password)) {
String sql = "INSERT INTO mytable (column1, column2) VALUES (?, ?)";
try (PreparedStatement pstmt = conn.prepareStatement(sql)) {
for (int i = 0; i < 1000; i++) {
pstmt.setString(1, "Value1_" + i);
pstmt.setString(2, "Value2_" + i);
pstmt.addBatch();
}
pstmt.executeBatch();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
batchsize
参数来控制每次批量插入的数据量。conn.setAutoCommit(false)
关闭自动提交,然后在所有插入操作完成后调用conn.commit()
提交事务。希望这些信息对你有所帮助!如果你有其他问题,请随时提问。
领取专属 10元无门槛券
手把手带您无忧上云