java insert方法_【Oracle/Java】以Insert ALL方式向表中插入百万条记录,耗时9分17秒...
packagecom.hy;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;importjava.text.MessageFormat;/*** 百万数据插入Oracle表中
*@authorhorn1
**/
public classMillionInserter {//连接到数据库的四大属性
private static final String DRIVER = "oracle.jdbc.driver.OracleDriver";private static final String DBURL = "jdbc:oracle:thin:@127.0.0.1:1521:orcl";private static final String USER = "system";private static final String PSWD = "XXXX";public void batchInsert(intcount) {
Connection conn= null;
Statement stmt= null;try{long startTime =System.currentTimeMillis();
Class.forName(DRIVER).newInstance();
conn=DriverManager.getConnection(DBURL, USER, PSWD);
stmt=conn.createStatement();int BatchSize=100;int index=0;int times=count/BatchSize;for(int i=0;i
StringBuilder sb=newStringBuilder();
sb.append("INSERT ALL ");for(int j=0;j
index=i*BatchSize+j;
String name="M"+index;int age=j % 100;
String raw=" INTO firsttb(NAME, age,createdtime) values(''{0}'',''{1}'',sysdate) ";
Object[] arr={name,age};
String particialSql=MessageFormat.format(raw, arr);
sb.append(particialSql);
}
sb.append("select * from dual");
String sql=sb.toString();
stmt.executeUpdate(sql);
System.out.println("#"+i+" "+BatchSize+" records inserted");
}long endTime =System.currentTimeMillis();
System.out.println("Time elapsed:" + sec2DHMS((endTime - startTime)/1000) );
String sql= "select count(*) as cnt from firsttb";
ResultSet rs=stmt.executeQuery(sql);while(rs.next()) {
String cnt= rs.getString("cnt");
System.out.println("当前记录数:"+cnt);
}
}catch(Exception e) {
System.out.print(e.getMessage());
}finally{try{
stmt.close();
conn.close();
}catch(SQLException e) {
System.out.print("Can't close stmt/conn because of " +e.getMessage());
}
}
}/*** 将秒转化为日时分秒
*@paramsecondCount
*@return
*/
private static String sec2DHMS(longsecondCount) {
String retval= null;long days = secondCount / (60 * 60 * 24);long hours = (secondCount % (60 * 60 * 24)) / (60 * 60);long minutes = (secondCount % (60 * 60)) / 60;long seconds = secondCount % 60;
String strSeconds="";if(seconds!=0) {
strSeconds=seconds + "s";
}if (days > 0) {
retval= days + "d" + hours + "h" + minutes + "m" +strSeconds;
}else if (hours > 0) {
retval= hours + "h" + minutes + "m" +strSeconds;
}else if (minutes > 0) {
retval= minutes + "m" +strSeconds;
}else{
retval=strSeconds;
}returnretval;
}/*** 执行点
*@paramargs*/
public static voidmain(String[] args) {
MillionInserter mi=newMillionInserter();
mi.batchInsert(1000000);
}
}
java insert方法_【Oracle/Java】以Insert ALL方式向表中插入百万条记录,耗时9分17秒...相关推荐
- Mysql命令insert into:向表中插入数据(记录)
insert into命令用于向表中插入数据. insert into命令格式:insert into <表名> [(<字段名1>[,..<字段名n > ])] v ...
- Java main方法_解释Java中的main方法,及其作用_一个java文件中可包含多个main方法
public static void main(String[] args) {} 或者 public static void main(String args[]) {} main方法是我们学习Ja ...
- oracle查询:分组查询,取出每组中的第一条记录
按type字段分组,code排序,取出每组中的第一条记录 方法一: select type,min(code) from group_info group by type; 注意:select 后面 ...
- java修饰方法_修饰java方法
java修饰符 Java语言提供了很多修饰符,主要分为以下两类 访问修饰符, 非访问修饰符 修饰符用来定义类,方法或者变量,通常房子语句的最前端 访问控制修饰符 Java中,可以使用访问控制符来保护对 ...
- mysql查询最新插入的一条_我刚数据库中插入一条记录,紧接着再去查询却查不到?...
向数据库 中奖记录表中 添加一条中奖 记录,马上调用方法查询这条记录, 查询不到! 我打开数据库查看 数据是插入成功的. 开发语言是用java, 框架 hibernate! 插入数据,和查询数据代码如 ...
- mssql 一次向表中插入多条数据的方法分享 (转自:http://www.maomao365.com/?p=6058)
转自:http://www.maomao365.com/?p=6058) <span style="font-size:16px;font-weight:bold;"> ...
- java 废弃方法_在Java中使用Deprecated方法或类是错误的吗?
Cats萌萌 术语来自官方的Sun词汇表:deprecation:指不再推荐的类,接口,构造函数,方法或字段,可能在将来的版本中不再存在.从何时何时弃用指南:您可能已经听过"自我贬低的幽默& ...
- java万年历方法_利用java制作万年历
本文分享了制作万年历的方法,如果文中有不正确的地方,欢迎大家批评指正. (推荐教程:java课程) 代码实现:package com.softeem.test01; import java.time. ...
- java 复合方法_《Java 8 实战》Ch3: Lambda表达式(下):类型与限制、方法引用、复合...
李文轩 2019-04-23 3.5 类型的检查和判断:变量捕获限制 类型检查 Lambda的类型是从使用Lambda的上下文推断出来的. Lambda表达式需要的类型称为目标类型 . Lambda表 ...
最新文章
- time datetime 模块
- android 程序闪退 log,写了一个android小程序,测试的时候闪退,然鹅log并没有报错...
- 【Linux 内核】实时调度类 ⑦ ( 实时调度类核心函数源码分析 | dequeue_task_rt 函数 | 从执行队列中移除进程 )
- JavaScript(循环)
- linux --redis的部署 即主从
- android DecorView的使用
- Qt-调用dll动态链接库
- 模型评价(一) AUC大法 混淆矩阵
- 计算机网络 chapter3数据链路层
- textbox点击后弹出系统键盘导致背景重置为白色的问题
- Linux 下串口编程入门教程
- (转)华兴资本包凡:我们这么屌,是有原因的
- Rayleigh-Ritz法和Galerkin法
- 关于NVIDIA显卡驱动更新后,没有NVIDIA 控制面板的解决办法
- 基于Matlab的数字水印设计——基于空域的水印处理系统
- Competition2:HRZ学英语
- iOS开发 触觉体验(UIFeedbackGenerator)的使用
- java中的字节流和字符流
- java打印数组的连续非空子集_Apriori算法求数组的非空子集java代码
- mysql 1265错误_Mysql出现ERROR 1265: Data truncated for
热门文章
- kafka集群脚本启动失败,在kafkaServer.out中提示nohup: failed to run command `java’: No such file or directory
- 经典兔子问题python视频_Python练习题 007:兔子生兔子
- gerber文件怎么导贴片坐标_SMT贴片机在线编程调试
- 火狐浏览器如何更改字体 火狐浏览器字体更改方法分享
- Easyui动态加载后台数据的例子
- c语言结构-的优先级,c语言运算符号优先级
- SpringBoot的整合————一些常用工具类依赖及用法总结
- HSSFworkbook,XSSFworkbook,SXSSFworkbook区别总结
- Java微服务篇5——Docker
- ios 简书 获取通讯录信息_iOS-授权获取通讯录