java改单个插入为批量插入
单条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改单个插入为批量插入的更多相关文章
- mybatis单个插入和批量插入的简单比较
在J2EE项目中,mybatis作为主流持久层框架,许多知识值得我们去钻研学习,今天,记录一下数据插入性能(单个插入和批量插入). 一,测试对象 public class Test { private ...
- java mysql大数据量批量插入与流式读取分析
总结下这周帮助客户解决报表生成操作的mysql 驱动的使用上的一些问题,与解决方案.由于生成报表逻辑要从数据库读取大量数据并在内存中加工处理后在 生成大量的汇总数据然后写入到数据库.基本流程是 读取- ...
- mybatis的插入与批量插入的返回ID的原理
目录 背景 底层调用方法 单个对象插入 列表批量插入 完成 背景 最近正在整理之前基于mybatis的半ORM框架.原本的框架底层类ORM操作是通过StringBuilder的append拼接的,这次 ...
- c# MongoDB插入和批量插入,插入原理
在开发之前,选择MongoDb驱动是件很重要的事情.如果选择不好,在后期的开发的是件很费力的事情,因为我就遇到这样的问题.MongoDb驱动有几种比较流行驱动,官方驱动和samus是两种使用比较多的. ...
- 24单行插入与批量插入-insert(必学)-天轰穿sqlserver视频教程
大纲:insert语句,简单插入数据与批量插入数据 为了冲优酷的访问量,所以这里只放优酷的地址了,其实其他网站还是都传了的哈. 代码下载http://www.cnthc.com/?/article/1 ...
- python cx_oracle单个表中批量插入数据
- Mybatis 插入与批量插入以及多参数批量删除
实体类: import java.io.Serializable; public class AttachmentTable implements Serializable { private sta ...
- jdbc-批量插入、批量删除、批量更新
一.JDBC的批量插入 JDBC批量插入主要用于数据导入和日志记录因为日志一般都是先写在文件下的等. 我用Mysql5.1.5的JDBC driver 分别对三种比较常用的方法做了测试 方法 ...
- mysql 批量插入与单条插入 的效率比较
1.数据插入性能(单个插入和批量插入) public class Test { private Long id; private String test; public Long getId() { ...
随机推荐
- LeetCode(283. 移动零)
问题描述 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序. 示例: 输入: [0,1,0,3,12] 输出: [1,3,12,0,0] 说明: 必须在原数 ...
- IAR map 文件报告与Flash 大小关系
- 潭州课堂25班:Ph201805201 django框架 第七课 常用 字段类型及参数,关系表的实现,表关系对象add,create的方法 (课堂笔记)
写个类,创建表格 执行命令生成文件 提交,在数据库中创建 进入数据库查看 对数据进行修改操作 只有用到 save() 才能触发 updaer_time 的更改, 下边 update 方法不会修改 up ...
- [机器学习入门篇]-Logistic函数与Softmax函数
1.Logistic函数 在维基百科中,对logistic函数这样介绍道: A logistic function or logistic curve is a common "S" ...
- C#扩展方法实现
C#提供了一种机制,可以扩展系统或者第三方类库中的方法.比如说想在string类型的对象里面多一个ToInt32(),来方便的将字符转换成整形.在实现的过程中的关键字为static和this即可. ...
- pycharm实现sublime的显示效果,很惊艳哦
收到https://github.com/simoncos/pycharm-monokai链接中的指引 下载箭头所指的文件,然后按照 PyCharm -> File -> Settings ...
- firefox镜像 和geckodriver驱动大全
最近学习Selenium,下载资源很难,还好找到了一个网站,转载的https://blog.csdn.net/cyjs1988/article/details/73039423,收下了,以便以后学习使 ...
- Vue(三)常用指令
(1) v-model 双向数据绑定,一般用于表单元素 <script> window.onload=function(){ new Vue({ // el:'.itany', el:'d ...
- 利用百度OCR实现验证码自动识别
在爬取网站的时候都遇到过验证码,那么我们有什么方法让程序自动的识别验证码呢?其实网上已有很多打码平台,但是这些都是需要money.但对于仅仅爬取点数据而接入打码平台实属浪费.所以百度免费ocr正好可以 ...
- CentOS7 firewall开启,开放端口操作
防火墙开机启动 systemctl enable firewalld.service 查看防火墙状态 firewall-cmd --state 开启防火墙 systemctl start firewa ...