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() { ...
随机推荐
- ReactNative用指定的设备/模拟器运行项目
命令行中React native项目目录下键入react-native run-ios会启动iOS模拟器, 默认是使用iPhone6,如果想要试用其他版本的模拟器则需要在react-native ru ...
- U盘安装Ubuntu 14.04 LTS
1.下载Ubuntu14.04 LTS 从Ubuntu官网下载->http://releases.ubuntu.com/14.04/ 2.将Ubuntu14.04安装到U盘 下载U盘系统安装工具 ...
- CallContext,ThreadStatic,AsyncLocal<T>,ThreadLocal<T>,学习笔记
1.CallContext 在当前调用上下文的线程数据槽里存储对象 2.ThreadStatic 是一个特性 3.AsyncLocal<T> 是一个类型,该字段应当为static,保证单例 ...
- C++程序设计方法3:派生类对象的构造和析构过程
基类中的数据成员,通过继承成为派生类对象的一部分,需要在构造派生类对象的过程中调用基类构造函数来正确初始化: 若没有显示调用,则编译器会自动生成一个对基类的默认构造函数的调用. 若想要显示调用,则只能 ...
- 道路 [NOIP模拟]
Description 我们看见了一个由 m 行 n 列的 1*1 的格子组成的矩阵,每个格子(I,j)有对应的高度 h[i][j]和初始的一个非负权值 v[i][j].我们可以随便选择一个格子作为起 ...
- CodeForces 456-C Boredom
题目链接:CodeForces -456C Description Alex doesn't like boredom. That's why whenever he gets bored, he c ...
- cout.setf()
cout用来实现格式输出,类似于C语言中通过printf(). cout.setf()的作用是通过设置格式标志来控制输出形式,如,其中ios_base::fixed表示:用正常的记数方法显示浮点数(与 ...
- python asyncio
3. 真-官网文档 ----超级全 http://aiohttp.readthedocs.io/en/stable/client.html#make-a-request 2. 官网文档: htt ...
- 修复恢复"可疑"的SQLServer数据库
今天机房突然断电,DB连不上了,提示 无法打开数据库'MyDB'.恢复操作已将该数据库标记为 SUSPECT. 原因是断电导致DB文件损坏 通过SQL Server Management Studio ...
- too much recursion(太多递归)Uncaught RangeError: Maximum call stack size exceeded BootstrapValidator报错
在BootstrapValidator中已默认遵守Bootstrap规则,form里的每个输入项目必需包含在类为form-group的标签里,否则BootstrapValidator中定义的field ...