「java如何分批入出库」java入库出库

博主:adminadmin 2022-12-16 01:15:04 81

本篇文章给大家谈谈java如何分批入出库,以及java入库出库对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

java 如何批量插入数据

通过jdbc就可以执行批量插入了。

以下案例:

1、逐条执行10万次

2、分批执行将10万分成m批,每批n条,分多种分批方案来执行。

/**

* 批处理执行

*

* @param m 批次

* @param n 每批数量

* @throws Exception 异常时抛出

*/

public static void testInsertBatch(int m, int n) throws Exception {

init(); //初始化环境

Long start = System.currentTimeMillis();

for (int i = 0; i m; i++) {

//从池中获取连接

Connection conn = myBroker.getConnection();

Statement stmt = conn.createStatement();

for (int k = 0; k n; k++) {

String sql = "\n" +

"insert into testdb.tuser \n" +

"\t(name, \n" +

"\tremark, \n" +

"\tcreatetime, \n" +

"\tupdatetime\n" +

"\t)\n" +

"\tvalues\n" +

"\t('" + RandomToolkit.generateString(12) + "', \n" +

"\t'" + RandomToolkit.generateString(24) + "', \n" +

"\tnow(), \n" +

"\tnow()\n" +

")";

//加入批处理

stmt.addBatch(sql);

}

stmt.executeBatch(); //执行批处理

stmt.close();

myBroker.freeConnection(conn); //连接归池

}

Long end = System.currentTimeMillis();

System.out.println("批量执行" + m + "*" + n + "=" + m * n + "条Insert操作,共耗时:" + (end - start) / 1000f + "秒!");

}

java 数据分批插入

import java.util.ArrayList;  

import java.util.List;  

  

public class FenDuan {  

  

    /** 

     * @param args 

     */  

    public static void main(String[] args) {  

          

        //1.总记录数  

        ListString oldList = new ArrayListString();  

        for (int i = 0; i  1045; i++) {  

            oldList.add((i+1)+"");  

        }  

          

        //2.分页数据信息  

        int totalSize = oldList.size(); //总记录数  

        int pageSize = 10; //每页N条  

        int totalPage = totalSize/pageSize; //共N页  

  

        if (totalSize % pageSize != 0) {    

            totalPage += 1;    

            if (totalSize  pageSize) {    

                pageSize = oldList.size();   

            }    

        }    

        System.out.println("循环保存的次数:"+totalPage);//循环多少次    

  

        for (int pageNum = 1; pageNum  totalPage+1; pageNum++) {  

            int starNum = (pageNum-1)*pageSize;  

            int endNum = pageNum*pageSizetotalSize?(totalSize):pageNum*pageSize;  

            System.out.println("起始:"+starNum+"-"+endNum);  

              

            String str = "";  

            for (int i = starNum; i  endNum; i++) {  

                str += oldList.get(i) +"   ";  

            }  

  

            System.out.println("第"+pageNum+"批:" +str);  

        }  

  

  

    }  

  

}

这个只是一个思路

java 怎么把5万条数据分批插入数据到mysql,之前插1,2万没事, 多了就内存溢出

你的事务控制问题。

大量数据插入的时候,可以将数据量分批,每次事务提交一批。

例如:

con.setAutoCommit(false);// 更改JDBC事务的默认提交方式

Statement stmt = conn.createStatement();

// 第一批 省略n条

stmt.addBatch("insert into dept values (52,'a','aa')");

stmt.addBatch("insert into dept values (53,'b','bb')");

stmt.addBatch("insert into dept values (54,'c','cc')");

stmt.executeBatch();

con.commit();//提交JDBC事务

stmt.close();

// 第二批 省略n条

stmt = conn.createStatement();

stmt.addBatch("insert into dept values (52,'a','aa')");

stmt.addBatch("insert into dept values (53,'b','bb')");

stmt.addBatch("insert into dept values (54,'c','cc')");

stmt.executeBatch();

con.commit();//提交JDBC事务

stmt.close();

// 第n批

。。。。。。

con.setAutoCommit(true);// 恢复JDBC事务的默认提交方式

conn.close();

关于java如何分批入出库和java入库出库的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-12-16,除非注明,否则均为首码项目网原创文章,转载请注明出处。