单条insert into table value() 13W数据需要执行7小时

变成inert into table value(),(),(),(),()

inert into table value(),(),(),(),()

inert into table value(),(),(),(),()

这样,效率节省N倍 ,13W数据只需要3分钟

@Override
public boolean addBRDforList(List<AiResultBai> data) {
boolean flag=false;
String sql="insert into `ai_result_baidu`(`id`,`data_base_id`,`sentiment`,`positive_prob`,`negative_prob`,`create_time`) values ";
//+ "values ( NULL,?,?,?,?,?)";
List<String> sbList = new ArrayList<>();//存储sql
StringBuffer sb = new StringBuffer();
DataBaseDao dbd=new DataBaseDaoImpl();
for(int i = 0 ; i < data.size() ; i++) {
//对数据进行分析,并得出base_id
if(i==0 || i%10==0) {
if (sb.toString().length() > 0) {//第一次不会进来
sbList.add(sb.toString());
}
sb=new StringBuffer();
sb.append(sql).append("(NULL,"+data.get(i).getData_base_id()+","+data.get(i).getSentiment()+","+data.get(i).getPositive_prob()+","+data.get(i).getNegative_prob()+",'"+data.get(i).getCreate_time()+"'"+")");
}else if(i == data.size() -1) {
sb.append(","+"(NULL,"+data.get(i).getData_base_id()+","+data.get(i).getSentiment()+","+data.get(i).getPositive_prob()+","+data.get(i).getNegative_prob()+",'"+data.get(i).getCreate_time()+"'"+")");
sbList.add(sb.toString());
}else {
sb.append(","+"(NULL,"+data.get(i).getData_base_id()+","+data.get(i).getSentiment()+","+data.get(i).getPositive_prob()+","+data.get(i).getNegative_prob()+",'"+data.get(i).getCreate_time()+"'"+")");
} }
System.out.println(sbList.size());
int j=0;
for (String string : sbList) {
j++;
System.out.println(j+"=="+"sql====="+string);
if(this.getconnection()) {
this.executeUpdate1(string); }
this.clossconnection();
}
if(sbList.size()==j) {
flag=true;
} System.out.println("共有Sql:"+sbList.size()+"条");
return flag;
}

java改单个插入为批量插入的更多相关文章

  1. mybatis单个插入和批量插入的简单比较

    在J2EE项目中,mybatis作为主流持久层框架,许多知识值得我们去钻研学习,今天,记录一下数据插入性能(单个插入和批量插入). 一,测试对象 public class Test { private ...

  2. java mysql大数据量批量插入与流式读取分析

    总结下这周帮助客户解决报表生成操作的mysql 驱动的使用上的一些问题,与解决方案.由于生成报表逻辑要从数据库读取大量数据并在内存中加工处理后在 生成大量的汇总数据然后写入到数据库.基本流程是 读取- ...

  3. mybatis的插入与批量插入的返回ID的原理

    目录 背景 底层调用方法 单个对象插入 列表批量插入 完成 背景 最近正在整理之前基于mybatis的半ORM框架.原本的框架底层类ORM操作是通过StringBuilder的append拼接的,这次 ...

  4. c# MongoDB插入和批量插入,插入原理

    在开发之前,选择MongoDb驱动是件很重要的事情.如果选择不好,在后期的开发的是件很费力的事情,因为我就遇到这样的问题.MongoDb驱动有几种比较流行驱动,官方驱动和samus是两种使用比较多的. ...

  5. 24单行插入与批量插入-insert(必学)-天轰穿sqlserver视频教程

    大纲:insert语句,简单插入数据与批量插入数据 为了冲优酷的访问量,所以这里只放优酷的地址了,其实其他网站还是都传了的哈. 代码下载http://www.cnthc.com/?/article/1 ...

  6. python cx_oracle单个表中批量插入数据

  7. Mybatis 插入与批量插入以及多参数批量删除

    实体类: import java.io.Serializable; public class AttachmentTable implements Serializable { private sta ...

  8. jdbc-批量插入、批量删除、批量更新

    一.JDBC的批量插入 JDBC批量插入主要用于数据导入和日志记录因为日志一般都是先写在文件下的等.    我用Mysql5.1.5的JDBC driver 分别对三种比较常用的方法做了测试   方法 ...

  9. mysql 批量插入与单条插入 的效率比较

    1.数据插入性能(单个插入和批量插入) public class Test { private Long id; private String test; public Long getId() { ...

随机推荐

  1. 解决 Excel2013打开提示 文件格式和扩展名不匹配。文件可能已损坏或不安全

    有的时候打开xls文档时,会提示“文件格式和扩展名不匹配.文件可能已损坏或不安全.除非您信任其来源,否则请勿打开.是否仍要打开它?” 遇到这种情况,我们需要 1.win键+R键,打开“运行“,输入re ...

  2. Ubuntu16.04安装使用wineqq

    目前稳定的wineqq版本为qq2012,官方下载地址->这里 此版本有以下优点: 1.传送文件无问题. 2.支持密码键盘输入并记住密码. 3.可以发送QQ表情无问题. 4.QQ设置常用功能,比 ...

  3. Python 列表(List)-文摘

    原文地址:http://www.runoob.com/python/python-lists.html Python 列表(List) 序列是Python中最基本的数据结构.序列中的每个元素都分配一个 ...

  4. MySql中的约束

    mysql中的约束使用和oracle使用差别不大. 1.主键约束 如同人对应身份证,主键能够唯一地标识表中的一条记录,可以结合外键来定义数据表之间的关系. 主键约束要求主键列的数据唯一,并且不允许为空 ...

  5. UltraEdit使用(工具类似于notepad++)

    打开多个文件,在多个文件中切换,鼠标点/ Ctrl+Tab自动换行的设置: 高级-->配置-->编辑器-->自动换行,制表符设置-->默认为每个文件启用自动换行 去掉自动备份设 ...

  6. Java基础知识总结--多态

    面向对象编程的三大特性:封装.继承.多态 封装隐藏了类的内部实现机制,可以在不影响使用的情况下改变类的内部结构,同时也保护了数据,而外界而已它的内部细节是隐藏的,暴露给外界的只是它的访问方法. 继承是 ...

  7. svn提交报错Previous operation has not finished; run 'cleanup' if it was interrupted

    从SVN上拉下来Document文档(word和excel),在本地修改后,准备通过TortoiseSVN提交,发现报错. Error: Previous operation has not fini ...

  8. .NET Core中使用IHostedService结合队列执行定时任务

    最近遇到了这样的场景:每隔一段时间,需要在后台使用队列对一批数据进行业务处理. Quartz.NET是一种选择,在 .NET Core中,可以使用IHostedService执行后台定时任务.在本篇中 ...

  9. IE环境表单提交不跳转页面

    <head> <base target="_self"></base> </head>

  10. Android的Databinding-RecyleView绑定

    public class UserAdapter extends RecyclerView.Adapter<UserAdapter.UserHolder> { private static ...