JNBusiness/ruoyi-admin/src/main/java/com/ruoyi/web/utils/batchInsert.java

119 lines
3.4 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
package com.ruoyi.web.Utils;
import com.ruoyi.system.domain.cost;
import com.ruoyi.system.domain.material;
import javax.swing.*;
import java.sql.*;
import java.util.List;
public class batchInsert extends JFrame {
public static Connection conn;
public static Statement stm;
public static PreparedStatement stmt;
public static ResultSet rs;
*/
/**
* 对数据库进行批量插入数据操作 执行次数100万
*//*
public static void insertMaterialBatch(List<material> list) throws Exception {
// 思路将100万条数据分成n等份1等份为1000条数据
// 如何实现?
// 1、必须将Connection接口的自动提交方式改为手动
// 2、利用Statement接口中的如下三个方法addBatch、clearBath、executeBatch
conn = DataDBUtils.getConnection();
conn.setAutoCommit(false);
*/
/*stmt = conn.prepareStatement(
"insert into [dbo].[sapcontract_test](uid,bh,type,custom,salesman,project,htje,startdate,enddate,remark,htzt) values (?,?,?,?,?,?,?,?,?,?,?)");*//*
stmt = conn.prepareStatement(
"insert into c_material(material_id, material_xingh, material_guig, material_diany, material_dw,material_type_id) values (?,?,?,?,?,?)");
int count = 0;
System.err.println("Start");
for (material pay : list) {
count++;
stmt.setInt(1, pay.getMaterial_id());
stmt.setString(2, pay.getMaterial_xingh());
stmt.setString(3, pay.getMaterial_guig());
stmt.setString(4, pay.getMaterial_diany());
stmt.setString(5, pay.getMaterial_dw());
stmt.setString(6, pay.getMaterial_type_id());
stmt.addBatch();
if (count % 5000 == 0) {// 当增加了500个批处理的时候再提交
stmt.executeBatch();// 执行批处理
conn.commit();
}
}
stmt.executeBatch();// 执行批处理
conn.commit();
close(); // 关闭资源
}
*/
/**
* 对数据库进行批量插入数据操作 执行次数100万
*//*
public static void insertCostBatch(List<cost> list) throws Exception {
// 思路将100万条数据分成n等份1等份为1000条数据
// 如何实现?
// 1、必须将Connection接口的自动提交方式改为手动
// 2、利用Statement接口中的如下三个方法addBatch、clearBath、executeBatch
conn = DataDBUtils.getConnection();
conn.setAutoCommit(false);
*/
/*stmt = conn.prepareStatement(
"insert into [dbo].[sapcontract_test](uid,bh,type,custom,salesman,project,htje,startdate,enddate,remark,htzt) values (?,?,?,?,?,?,?,?,?,?,?)");*//*
stmt = conn.prepareStatement(
"insert into c_material_cost(cost_id, cost_material_id, cost_cl_id, cost_cl_qty, cost_cl_qty_2) values (?,?,?,?,?)");
int count = 0;
System.err.println("Start");
for (cost pay : list) {
count++;
stmt.setInt(1, pay.getCost_id());
stmt.setInt(2, pay.getCost_material_id());
stmt.setString(3, pay.getCost_cl_id());
stmt.setString(4, pay.getCost_cl_qty());
stmt.setString(5, pay.getCost_cl_qty_2());
stmt.addBatch();
if (count % 5000 == 0) {// 当增加了500个批处理的时候再提交
stmt.executeBatch();// 执行批处理
conn.commit();
}
}
stmt.executeBatch();// 执行批处理
conn.commit();
close(); // 关闭资源
}
public static void close() {
try {
if (rs != null)
rs.close();
if (stmt != null)
stmt.close();
if (stm != null)
stm.close();
if (conn != null)
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
*/