package com.test.mysql;
import java.io.IOException;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import com.mysql.jdbc.Connection;
public class MysqlBatchUtil {
private String sql="INSERT INTO tb_user (user_name,password,age) VALUES (?,?,?)";
private String connectStr="jdbc:mysql://localhost:3306/test";
private String username="root";
private String password="root";
private void doStore() throws ClassNotFoundException, SQLException, IOException {
Class.forName("com.mysql.jdbc.Driver");
connectStr += "?useServerPrepStmts=false&rewriteBatchedStatements=true";//此处是测试高效批次插入,去掉之后执行时普通批次插入
Connection conn = (Connection) DriverManager.getConnection(connectStr, username,password);
conn.setAutoCommit(false); // 设置手动提交
int count = 0;
PreparedStatement psts = conn.prepareStatement(sql);
long start = System.currentTimeMillis();
for(int i=0;i<=1000000;i++){
psts.setString(1, i+"username1");
psts.setString(2, i+"password2");
psts.setInt(3, i);
psts.addBatch(); // 加入批量处理
count++;
}
psts.executeBatch(); // 执行批量处理
conn.commit(); // 提交
System.out.println("数量="+count);
System.out.println("运行时间="+ (System.currentTimeMillis() - start)+"毫秒");
conn.close();
}
public static void main(String[] args) {
try {
new MysqlBatchUtil().doStore();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
相关文章
- c#中往mysql里批量插入上万条数据,有比较高效的方法吗?谢谢
- JDBC 批量插入Mysql 字段值采用随机字符 100万条数据
- mysql 批量插数据到数据库以及返回插入生成的id号
- jmeter连接mysql数据库批量插入数据
- java 使用jdbc向mysql数据库中插入1亿条数据
- (转)mysql 批量插入上万条数据 inserts 需要配置
- 新手求助怎样向mysql数据库中的数据表批量插入数据?
- MYSQL批量插入数据库实现语句性能分析【转】 批量插入!程序里面对于数据库插入的功能尽量用【异步处理+批量插入+(事务)】
- Node.js下向MySQL数据库插入批量数据的方法
- 生成一条SQL语句,使用Python一次将多行插入到MySQL数据库中