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

JDBC批处理补充

    博客分类:
  • java
阅读更多

最近公司在用DB2数据库,用的DbVisualizer作为数据库管理工具。因为开发库和实际库是分开的,所以经常要从实际库中导出数据到开发库,一般是导出为文件的形式。

在数据量小的时候是每没什么问题的,可是当数据量达到10w以上时,DbVisualizer老内存溢出。一气之下,想到了用JDBC的批处理,来实现数据的导入,说干就干,但是在开发的过程中还是遇到很多问题的,大家都知道,JDBC中的Statement和PreparedStatement都是可是做批处理的,但是在我的这个问题中,只能用Statement,因为是每次从文件中读取要导入的sql语句(都是insert语句),每次读入的时候语句都是变的。所以没法用PreparedStatement(预编译SQL)。

第一次写博,不知道各位大牛们,有没有好的方法?

 

 

 Connection con = null;
        Statement ps = null;
        try {
            FileReader fr = new FileReader("d:/datas.sql");

            BufferedReader bis = new BufferedReader(fr);
            String insertSql;
            int i = 0;
            con = getConnection();
            ps = con.createStatement();
            long start=System.currentTimeMillis();
            
            while ((insertSql= bis.readLine()) != null&& i<3112) {
                
                ps.addBatch(insertSql);
                i++;
                if (i % 1000 == 0) {
                    ps.executeBatch();
                    ps.clearBatch();
                    long now=System.currentTimeMillis();
                    System.out.println("已完成:" + i+",时间:"+(now-start)+"ms");
                }

            }
            //执行剩余的sql
            ps.executeBatch();

        } catch (Exception e) {

            e.printStackTrace();
        } finally {
            try {
                if (ps != null) ps.close();
                if (con != null) con.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }

 

0
2
分享到:
评论

相关推荐

    02_传智播客JDBC_编写一个简单的jdbc例子程序.rar

    10. **批处理**: 可以通过`Statement`的`addBatch()`和`executeBatch()`方法批量执行多条SQL语句,提高效率。 在压缩包中的"02_传智播客JDBC_编写一个简单的jdbc例子程序"很可能是包含了一个简单的Java源代码文件,...

    JDBC 4 ORACLE

    虽然不直接关联于Oracle JDBC,但可以作为了解其他JDBC驱动使用方式的补充信息。 综上所述,"JDBC 4 ORACLE"这篇博文提供了关于使用JDBC 4.0与Oracle数据库交互的全面教程,涵盖了连接配置、SQL执行、事务管理、...

    补充关于通用类JDBC1

    3. 扩展策略接口:如果需要处理更复杂的映射逻辑,可以考虑在策略接口中添加更多的方法,如处理批处理查询、支持多表联查等。 总结来说,通过将策略模式应用到通用JDBC操作中,我们可以实现返回值映射的灵活配置,...

    sqlserver-jdbc驱动.rar

    2. `mssqlserver.jar`:可能是一个特定于Microsoft SQL Server的扩展或补充库,提供了额外的功能或者优化,以增强对SQL Server数据库的支持。 3. `注意事项.txt`:这个文件通常包含关于如何使用这些驱动程序的重要...

    glassfish 上的 batch application 紀錄如何清1

    - **集群环境中的问题**:如果你的Glassfish是集群部署,直接通过JDBC/_TimerPool连接各个节点上的Derby数据库可能会存在问题,需要特别注意。 总的来说,清理Glassfish上的批处理应用记录涉及到对Derby数据库的...

    JAVA 实例代码_新手推荐看看

    PreparedStatement用于防止SQL注入,而批处理操作则能提高性能。 除了基础的JDBC,现代Java开发更多地使用ORM(Object-Relational Mapping)框架,如Hibernate和MyBatis,它们将数据库操作与对象模型相结合,简化了...

    免安装的Oracle客户端

    - **JDBC补充包**(Instant Client Package-JDBC Supplement):提供了针对JDBC环境下X/Open XA规范、国际化支持及RowSet操作的额外支持。 - **SQL*Plus支持包**(Instant Client Package-SQL*Plus):包含了运行...

    spring-framework-reference3.0.7

    11. **Spring Boot**:虽然不在3.0.7版本中,但Spring Boot是后来的一个重要补充,它简化了Spring应用程序的初始设置和运行过程。 提供的文件"Spring REST配置指南与问题总结 - 51CTO_COM.mht"可能是关于如何在...

    Oracle手记-20220304175244-ofd7ayg.pdf

    2. 添加补充日志:确保数据库启用了补充日志,以便LogMiner能够解析事务的完整信息。 3. 开启归档:为了分析历史数据,需要开启数据库的归档模式。 4. 安装LogMiner:Oracle数据库自带LogMiner工具,但可能需要...

    hibernate学习笔记mashibing

    最后,补充话题可能包括对Hibernate最新特性的探索,如使用注解代替XML配置,以及与Spring等其他框架的集成,这些都是提高开发效率和代码质量的有效途径。 总的来说,学习Hibernate不仅是掌握一个工具,更是理解和...

    梳理的一些java开发中用上的框架和开发工具,肯定会遗漏,欢迎补充

    Apache Flink 是一款流处理框架,同时也支持批处理。 - **Spark**: 框架。Apache Spark 是一款开源的大规模数据处理引擎。 - **HBase**: 框架。HBase 是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang ...

    hibernate的一份知识点总结

    - **优化方向**:缓存机制、懒加载、批处理、查询优化等。 #### 五、补充话题与资源 **11. 补充话题** - 包括注解版本的HelloWorld、CLOB/BLOB数据类型处理、自定义数据类型等。 **12. 资源推荐** - 官方网站...

    J2EE软件工程师内部培训资料

    - **JDBC2.0新特性**:列出JDBC 2.0版本引入的新功能,如批处理更新、RowSet等。 - **JDBC对标准的扩展(JNDI)**:介绍如何使用Java命名和目录接口(JNDI)来查找和获取数据库连接。 #### Hibernate 3.0 - **...

    impala 详细使用手册.pdf

    通过共享相同的元数据和数据存储层,Impala 和 Hive 可以相互补充,形成一个强大的数据处理平台。 #### 总结 Apache Impala 以其卓越的性能和灵活的集成能力,在大数据分析领域占据了重要地位。通过对上述内容的...

    Hibernate学习笔记(很详细哦)

    性能优化是Hibernate应用中不可或缺的一部分,涉及到缓存策略、批处理、延迟加载等技术,旨在减少不必要的数据库交互,提高应用响应速度。 #### 九、补充话题与资源 除了上述内容,学习Hibernate还应关注一些补充...

    spring english ppt

    10. **Spring Batch**:Spring Batch是一个用于处理大量数据的批处理框架,它提供了一套完整且可扩展的批处理功能,包括读取、处理和写入数据,以及错误处理和事务管理。 以上是对Spring框架及其相关组件的简要介绍...

    超级好用的spring

    面向切面编程则提供了将关注点分离的能力,如日志记录、事务管理等,可以作为核心业务逻辑之外的补充。 Spring框架包含多个模块,例如: 1. **Spring Core**:这是Spring的基础,提供了IoC容器和DI服务,管理对象...

    The Java Language Specification, Java SE 6 Edition.rar

    14. JDBC增强:Java 6对JDBC(Java Database Connectivity)进行了增强,如改进的批处理、预编译语句的性能优化以及更好的连接池支持。 15. 轻量级Web开发:Java 6支持Servlet 2.5和JSP 2.1标准,简化了Web应用程序...

    Hibernate中所有包作用详细讲解

    这是一个扩展JDBC 2.0规范的库,用于支持某些高级特性,如批处理更新等。虽然大多数现代数据库驱动已经支持这些功能,但对于某些特殊需求,这个库仍然有用。 #### 19. jta.jar JTA (Java Transaction API) 是一个...

Global site tag (gtag.js) - Google Analytics