MySQL JDBC批量插入是指通过Java的JDBC API,将多条SQL插入语句一次性发送到MySQL数据库执行,以提高数据插入的效率。批量插入可以减少网络传输次数和数据库的I/O操作,从而显著提升性能。
MySQL JDBC批量插入主要有两种类型:
addBatch()
和executeBatch()
方法实现。批量插入适用于需要一次性插入大量数据的场景,如数据迁移、日志记录、批量导入等。
以下是一个简单的批量插入示例:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
public class BatchInsertExample {
public static void main(String[] args) {
String url = "jdbc:mysql://localhost:3306/mydatabase";
String user = "username";
String password = "password";
List<User> users = new ArrayList<>();
users.add(new User(1, "Alice"));
users.add(new User(2, "Bob"));
// 添加更多用户...
String sql = "INSERT INTO users (id, name) VALUES (?, ?)";
try (Connection conn = DriverManager.getConnection(url, user, password);
PreparedStatement pstmt = conn.prepareStatement(sql)) {
for (User user : users) {
pstmt.setInt(1, user.getId());
pstmt.setString(2, user.getName());
pstmt.addBatch();
}
pstmt.executeBatch();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
class User {
private int id;
private String name;
public User(int id, String name) {
this.id = id;
this.name = name;
}
public int getId() {
return id;
}
public String getName() {
return name;
}
}
conn.setAutoCommit(false)
和conn.commit()
来控制事务。conn.setAutoCommit(false)
和conn.commit()
来控制事务。通过以上内容,您应该对MySQL JDBC批量插入有了全面的了解,并能解决常见的相关问题。
领取专属 10元无门槛券
手把手带您无忧上云