`
lapulande
  • 浏览: 218950 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JDBC的批处理简单使用。

    博客分类:
  • JDBC
阅读更多

前些天有个需要。要处理一个有20000行3MB大小的txt文件。要把每一行插入到数据库里,而且是web系统下,

我按一般preparedStatement写完了,一测试,妈妈呀,跑了近20分钟,这还了得,

感激想办法,请教高手,改用JDBC的批处理。简单列下代码

 

                File file = new File("D:\\test.txt");
                Connection conn = ConnectionManager.getConnection();
		String sql = "insert into table(param1,param2,param3,param4,param5,param6,param7,param8,param9,param10) values(?,?,?,?,?,?,?,?,?,?)";
		PreparedStatement psmt = null;
		try {
			conn.setAutoCommit(false);
			psmt = conn.prepareStatement(sql);
			if(file.exists() && file.isFile()){
				try {
					FileReader fr = new FileReader(file);
					BufferedReader reader = new BufferedReader(fr);
					String line = reader.readLine();
					int count = 1;
					while(line!=null){
                   ...........
                   psmt.setXXX();//set参数
                   ...........
						psmt.addBatch(); //加入批处理
						if(count % 5000 == 0){
                     //设置5000为一个批处理
							psmt.executeBatch(); 
							conn.commit(); 
							psmt.clearBatch(); 
						}
						count++;
						line = reader.readLine();
					}
					psmt.executeBatch(); 
					conn.commit(); 
					psmt.clearBatch(); 
					
				} catch (FileNotFoundException e) {
					e.printStackTrace();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
			
		} catch (SQLException e1) {
			e1.printStackTrace();
		}finally{
			ConnectionManager.free(conn, psmt);
		}

 完了我一测试,真快啊,2秒搞定。哈哈,写下来以后用。

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    jdbc连接数据库的方式2

    我们可以使用addBatch()和executeBatch()方法选择标准的JDBC批处理,或者通过利用PreparedStatement对象的setExecuteBatch()方法和标准的executeUpdate()方法选择速度更快的Oracle专有的方法。要使用Oracle专有的...

    JDBC笔记 JDBC笔记

    JDBC的特性:高度的一致性、简单性(常用的接口只有4、5个)。 1.在JDBC中包括了两个包:java.sql和javax.sql。 ① java.sql 基本功能。这个包中的类和接口主要针对基本的数据库编程服务,如生成连接、执行语句...

    Java_JDBC由浅入深

    7.1 实际项目中如何使用JDBC 41 7.2 DAO设计模式简介 42 7.3 DAO设计模式的实现 42 7.4 DAO设计模式与工厂模式的整合 49 7.5 DAO设计模式测试 52 第八节 JDBC对事务的支持 52 8.1 模拟转账 53 8.2 jdbc默认事务 54 ...

    jdbcDemo.zip

    [Java基础——jdbc],学习jdbc过程中的代码Demo,方便回顾。包括jdbc的简单使用,自定义工具类,批处理,事务管理。

    自己封装的JDBC工具类源码

    最近刚学习了JDBC,最后封装了一段简单的工具类,主要功能有: 1、执行sql语句返回单条查询结果; 2、执行查询语句sql返回结果集; 3、执行数据的插入,修改,删除; 4、执行批处理; 5、调用存储过程; 6、...

    spring-jdbcTmplate使用

    jdbcTmplate 的常用使用方法,及相关事务关系的简单应用,适合初学者

    JMiniORM:Java语言的Micro-ORM和数据库实用程序

    JDBC批处理模式支持 可插拔SQL方言 配置 至少,您必须提供数据库URL,用户名和密码。 IDatabaseConfig config = new DatabaseConfig . Builder () .dataSource( " <url> " , " <username> " , " <password> " ) ...

    hbase phoenix sql

    直接使用HBase API、协同处理器与自定义过滤器,对于简单查询来说,其性能量级是毫秒,对于百万级别的行数来说,其性能量级是秒。 Phoenix最值得关注的一些特性有: 嵌入式的JDBC驱动,实现了大部分的java.sql...

    jsp servlet 入门学习资料-新手一看就懂

    11.1.3 批处理更新 11.1.4 对Java对象的持久性 11.1.5 数据库连接池使用实例 11.2 文件上载 11.2.1 实现机理 11.2.2 文件上载实例 第12章 JSP高级应用实例:网上书店 12.1 概述 12.2 扩展标签的使用 12.2.1...

    jsp从入门到高级编程

    11.1.3 批处理更新 11.1.4 对Java对象的持久性 11.1.5 数据库连接池使用实例 11.2 文件上载 11.2.1 实现机理 11.2.2 文件上载实例 第12章 JSP高级应用实例:网上书店 12.1 概述 12.2 扩展标签的使用 12.2.1...

    JSP高级教程

    11.1.3 批处理更新 11.1.4 对Java对象的持久性 11.1.5 数据库连接池使用实例 11.2 文件上载 11.2.1 实现机理 11.2.2 文件上载实例 第12章 JSP高级应用实例:网上书店 12.1 概述 12.2 扩展标签的使用 12.2.1...

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    实例238 优雅的JDBC代码 299 实例239 结果集与Bean列表 301 实例240 编写MD5查看器 302 实例241 基于Base64编码 304 实例242 基于Base64解码 305 实例243 发送简单的Email 306 实例244 发送带附件的Email 308 实例...

    JSP高级编程

    本书从最基础的JSP开发开始,循序渐进地介绍了JSP 开发技术,并涵盖了许多高级主题,如需要在企业级Web应用中使用的特性—Enterprise JavaBeans、JDBC 2.0、数据库连接池和自定义标签库。本书既适合初学者阅读,也...

    64位操作系统下,使用PB、 PL/SQL 连接64位Oracle的方法

    连接 64 位远程服务器比较简单,按上述下载、配置环境变量后,PB 可直接使用,PL/SQL 也只需在 Tools -> Preferences -> Oracle -> Connection 中的 Oracle Home、 OCL library 中分别加入 D:\ instantclient_11_2、...

    Navicat Premium 11.0.10 + Patch

    Navicat Premium 能使你简单并快速地在各种数据库系统间传输数据,或传输到一份指定 SQL 格式和编码的纯文本文件。 并且,可以计划不同数据库的批处理作业并在指定的时间运行。其他功能包括导入向导、导出向导、查询...

Global site tag (gtag.js) - Google Analytics