package cn.flybird.test; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.text.SimpleDateFormat; import java.util.Date; import java.util.TimeZone; /**表 * DROP TABLE IF EXISTS `test2`; * CREATE TABLE `test2` * (`name` varchar(500)CHARACTER SET gbk DEFAULT NULL * ) * ENGINE=MyISAM DEFAULT CHARSET=gbk; * * @author Administrator * */ public class Test2 { public static void main(String[] args) throws Exception { Class.forName("com.mysql.jdbc.Driver"); Connection con = (Connection) DriverManager.getConnection( "jdbc:mysql://" + "localhost:3306/test?characterEncoding=GBK", "root", "root"); // 关闭事务自动提交 con.setAutoCommit(false); SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss:SS"); TimeZone t = sdf.getTimeZone(); t.setRawOffset(0); sdf.setTimeZone(t); Long startTime = System.currentTimeMillis(); PreparedStatement pst = (PreparedStatement) con .prepareStatement("insert into test2 values (?)");// 对随便1个字段操作表! int bufferSize = 0; // 对数据库的一个表插1亿条数据 for (int i = 1; i <= 100000000; i++) { bufferSize++; pst.setString(1, "插入第" + i + "条数据");// pst.addBatch(); // 每1w条数据批量处理一次提交到数据库 if ((bufferSize + 1) % 1000 == 0) { pst.executeBatch(); con.commit(); pst.clearBatch();// 批量清除一下! } // System.out.println("第("+i+")条"); } int[] result1 = pst.executeBatch();//批量執行,如果不批量執行到一定數據時會有可能會報錯 con.commit(); System.out.println("Length:" + result1.length); // 语句执行完毕,提交本事务 Long endTime = System.currentTimeMillis(); System.out.println("用时:" + sdf.format(new Date(endTime - startTime))); pst.close(); con.close(); } }
import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.sql.Connection; import java.sql.PreparedStatement; import java.text.SimpleDateFormat; import java.util.Date; public class Test2 { /** * 节日短信 1 * 生活短信 2 * 诗歌短信3 * 校园短信 4 * 幸福短信 5 * 幽默短信 6 */ public static void main(String[] args) throws Exception { String path = "D:/SMS/xydx.txt"; int typeId = 1; String content = ""; Connection conn = DBHelper.getConnection(); // 关闭事务自动提交 conn.setAutoCommit(false); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); PreparedStatement pst = conn.prepareStatement("insert into sms(Id,content,createTime,typeId) values (?,?,?,?)"); int bufferSize = 0; FileReader read = null; BufferedReader reader = null; read = new FileReader(new File(path)); reader = new BufferedReader(read); content = reader.readLine(); while (content != null) { bufferSize++; pst.setInt(1, 0); pst.setString(2, content); pst.setString(3, format.format(new Date()));// pst.setInt(4, typeId); pst.addBatch(); if ((bufferSize + 1) % 1000 == 0) { pst.executeBatch(); conn.commit(); pst.clearBatch();// 批量清除一下! } content = reader.readLine(); } int[] result = pst.executeBatch();// 批量執行,如果不批量執行到一定數據時會有可能會報錯 conn.commit(); //System.out.println("Length:" + result.length); System.err.println("成功"); // 语句执行完毕,提交本事务 DBHelper.close(null, pst, conn); } }
相关推荐
这个我感觉挺有用处吧,一般情况下,我们录入都是一条一条的,但信息量较大的时候,就需要批量插入数据了,我们可以先读取外部指定格式的文件,然后将数据转换为可插入的格式,然后使用insert批量向数据库中插入数据...
kettle同步数据库表数据到其他库的相同表名中,还可以指定特定的表名,只要在获取表中,输入特定表名,就只会同步输入的表
该示例使用简单,完成插入指定数量的数据,ajax写入数据库,并显示精准进度,实时返回运行过程。对于大量插入数据库的操作,可以做到无刷,不超时; 目录结构: Css/style.css -------------进度条样式 Js/...
内容概要:本资源介绍了如何从利用Npoi库操作Excel,如相关读取单元格、行,介绍了如何对单元格数据格式进行操作,并分享了如何将Datatable数据导入Mysql数据库,方便项目管理。 阅读建议:此资源以如何读取Excel...
QTableWidget初始化、批量添加数据、分页跳转、上一页、下一页、首页、尾页、跳转操作、、批量添加QLable控件,制作LED指示灯、批量添加QPushButton控件,实现“打开”/“关闭”的切换、批量添加QCheckBox控件,实现...
方法:解析XML文件,再调用odp.net组件批量提交,效率是批处理文件的4倍以上),我测试过100万数据批量插入在10秒以内(不包括解析文件的时间,根据机器的配置不同时间也不同)。 压缩包中包含的文件:数据库建表、...
3.通过连接Excel表,将Excel表作为数据库,创建选择集,然后将选择集批量插入Excel指定位置,速度比较快 4.将数组直接插入到Excel指定位置,速度比较快,因为数组数据在内存中,对于比较复杂的判断,可以先在数组中...
主要介绍了JDBC连接MySQL数据库批量插入数据过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
数据类型的实际最大长度由数据库页面大小决定,具体最 大长度算法如表 的区别在于前者长度不足时,系统自动填充空 格,而后者只占用实际的字节空间。 表 数据库页面大 实际最大长度 注:这个限制长度只针对建表的...
④实现了通用的sql语句执行帮助类(包含单条数据的插入、批量插入、事务处理、查询(指定内容查询、分页查询)、更新、删除等操作); ⑤可以直接获取Access数据库中的所有表名称及其表包含的所有列名称; ⑥包含了...
④实现了通用的sql语句执行帮助类(包含单条数据的插入、批量插入、事务处理、查询(指定内容查询、分页查询)、更新、删除等操作); ⑤可以直接获取Sqlite数据库中的所有表名称及其表包含的所有列名称; ⑥包含了...
最近由于工作的原因,经常需要对海量数据进行处理,做的数据爬虫相关,动辄千万级别的数据,单表几十个G 都是都是家常便饭。 那么主要的开发语言是C#,数据库使用的是MySQL。下面通过这篇文章我们来一起学习学习吧。
不管是在网站开发还是在应用程序开发中,我们经常会碰到需要将MySQL或MS SQLServer某个表的数据批量导入到另一个表的情况,甚至有时还需要指定导入字段。 本文就将以MySQL数据库为例,介绍如何通过SQL命令行将某个表...
可以编辑当前表数据,也可以编制任意常规表格(可以插入图片,目前尚不支持曲线图表等)。设计的表格,可以直接打印,也可导出到Excel。 3、完全自由的自动汇总: 想针对哪些项目进行汇总,可由用户自由定制,极为...
下面的代码只是批量插入数据,事实上,插入数据、更新数据、删除数据等可以混合一起执行。查询时使用该函数,读取数据有点不太一样,具体参考如下代码: <?php //1、创建数据库连接对象 $mysqli = new MySQLi(...
1417.1 从其他应用或者向其他应用移动数据 1417.2 理解Access如何处理其他数据库文件格式的表 1427.2.1 识别PC数据库文件格式 1437.2.2 链接和导入外部 ISAM表 1437.2.3 用ODBC链接Visual FoxPro表 1457.2.4 处理...
做项目需要,自己写的。可以批量选择一个文件夹中的图片并按指定序号存入数据库中,代码是C#写的,选图片时要注意逆向选,这样存到数据库中才是正确的顺序(可以看哪个显示选择文件的对话框,里面有文件顺序)
# 批量插入缓存大小, 这个参数是针对MyISAM存储引擎来说的。适用于在一次性插入100-1000+条记录时, 提高效率。默认值是8M。可以针对数据量的大小,翻倍增加。 myisam_sort_buffer_size = 1024M # MyISAM设置恢复表...
实例266 利用INSERT语句批量插入数据 实例267 利用SELECT INTO生成临时表 8.3 更新数据 实例268 批量修改数据 实例269 将指定字段数据为空的记录添上数据 8.4 删除数据 实例270 删除单条数据 实例271 删除数据库中无...