JDBC中的批量操作

JDBC的批量操作

依次执行单条INSERT语句,效率低下。将SQL语句合成一个,能有效提高执行效率

案例:批量插入10万条数据

① 在URL尾部拼接?rewriteBatchedStatements=true
② SQL语句末尾不能用分号
③ 每次设置完参数,需要使用preparedStatement.addBatch()来插入一行数据
④ 最后需要使用preparedStatement.executeBatch();来执行语句

// 获取连接,并设置批量操作模式
Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/wyt_test?rewriteBatchedStatements=true", "root", "123456");

// 编写SQL语句,末尾不能使用;
String SQL = "INSERT INTO t_employees(name, age, salary) VALUES(?,?,?)";

// 获取执行SQL语句的对象
PreparedStatement preparedStatement = connection.prepareStatement(SQL);

// 循环设置参数
for(int i = 0; i < 100000; i++) {
	preparedStatement.setString(1, "wyt" + i);
	preparedStatement.setInt(2, 1 + i);
	preparedStatement.setDouble(3, 3000.00 + i);
	// 批量设置参数
	preparedStatement.addBatch();
}

// 执行语句
preparedStatement.executeBatch();

System.out.println("插入成功");

// 释放资源
preparedStatement.close();
connection.close();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值