`
linduo168
  • 浏览: 17011 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

JAVA如何实现数据库的批处理操作

阅读更多
如何使用JDBC进行批处理?
业务场景:当需要向数据库发送一批SQL语句执行时,应避免向数据库一条条的发送执行,而应采用JDBC的批处理机制,以提升执行效率。
    实现批处理有两种方式,
            第一种方式: Statement.addBatch(sql) (其实是将sql语句 放在了一个 list 集合中。)
            第二种方式: PreparedStatement.addBatch() (其实是将sql语句 放在了一个 list 集合中。)
    执行批处理SQL语句
            executeBatch()方法:执行批处理命令
            clearBatch()方法:清除批处理命令(实际上是清除 List集合中的SQL语句,否则会造成内存溢出。)
    接下去比较2种方法的优缺点,可以更好的在实际工作场景中得以更好的应用。
    第一种方式:Statement.addBatch(sql)
   采用Statement.addBatch(sql)方式实现批处理的优缺点
        优点:可以向数据库发送多条不同的SQL语句。
        缺点:SQL语句没有预编译。当向数据库发送多条语句相同,但仅参数不同的SQL语句时,需重复写上很多条SQL语句。
Demo样例:
     @Test
public void test1() throws SQLException{
            Connection conn = null;
            Statement st = null;
            ResultSet rs = null;
            try {
                    conn = JdbcUtil.getConnection();
                    String sql1 = "insert into user(name,password,email,birthday)  values('kkk','123','abc@sina.com','1978-08-08')";
                    String sql2 = "update user set password='123456' where id=3";
                    st = conn.createStatement();
                    st.addBatch(sql1);  //把SQL语句加入到批命令中
                    st.addBatch(sql2);  //把SQL语句加入到批命令中
                    st.executeBatch();
                    st.clearBatch();
            } finally{
                 JdbcUtil.free(conn, st, rs);
            }
}

方法二、实现批处理的第二种方式:PreparedStatement.addBatch()
    优点:发送的是预编译后的SQL语句,执行效率高。
    缺点:只能应用在SQL语句相同,但参数不同的批处理中。因此此种形式的批处理经常用于在同一个表中批量插入数据,或批量更新表的数据。
    Demo样例:
@Test
public void test2() throws SQLException{
        conn = JdbcUtil.getConnection();
        String sql = "insert into user(name,password,email,birthday) values(?,?,?,?)";
        st = conn.prepareStatement(sql);
        for(int i=0;i<50000;i++){
                st.setString(1, "aaa" + i);
                st.setString(2, "123" + i);
                st.setString(3, "aaa" + i + "@sina.com");
                st.setDate(4,new Date(1980, 10, 10));
                st.addBatch();
                if(i%1000==0){      //为防止(list集合) 内存溢出:设定每累加1000条数据就向数据库发送一次
                        st.executeBatch();
                        st.clearBatch();
                }
        }
        st.executeBatch(); //当剩余的条数小于1000条时就不会被发送到数据库,所以此处要在发送一次。
分享到:
评论

相关推荐

    java代码-使用java解决数据库批处理的源代码

    java代码-使用java解决数据库批处理的源代码 ——学习参考资料:仅用于个人学习使用!

    S2北大青鸟 使用Java实现数据库编程(包含项目).zip

    在本压缩包“S2北大青鸟 使用Java实现数据库编程(包含项目).zip”中,主要涵盖的是S2学期的学习内容,重点在于讲解如何使用Java语言进行数据库编程。...在实践中不断探索和优化,才能真正成为熟练的Java数据库程序员。

    S2使用Java实现数据库编程

    本教程将重点讨论如何使用Java语言来实现对MySQL数据库的编程操作。通过提供的压缩包"使用Java实现数据库编程-1488176910082",我们可以深入学习这一主题。 首先,Java与MySQL的交互主要依赖于JDBC(Java Database ...

    Accp8.0\S2\使用Java实现数据库编程 第二章

    这些知识点的深入理解和实践,将帮助开发者构建出健壮、高效的Java数据库应用程序。在学习过程中,学生不仅需要理解概念,还需要动手编写代码,通过实际操作来巩固理论知识。通过Chapter01等文件的学习,可以逐步...

    java实现文件批处理

    在Java编程语言中,文件批处理是一项常见的任务,它涉及到大量文件的操作,如复制、分割、合并以及解压缩。以下是对这些操作的详细说明: **复制文件方法:** 在Java中,可以使用`java.io`包中的`FileInputStream`...

    Accp8.0\S2\使用Java实现数据库编程

    在“Accp8.0\S2\使用Java实现数据库编程”这...总之,“Accp8.0\S2\使用Java实现数据库编程”的课程内容全面,涵盖了从基础的JDBC操作到高级的数据库管理技巧,通过学习和实践,你将能够熟练地使用Java进行数据库编程。

    java实现数据库操作

    本主题将深入探讨如何使用Java实现数据库操作,包括连接数据库、执行SQL语句、处理结果集以及事务管理。 1. **JDBC(Java Database Connectivity)** JDBC是Java中用于访问数据库的标准API,它提供了统一的方法来...

    Java数据库编程案例2

    在提供的压缩包文件中,"第7章实例"可能涵盖了存储过程的调用,"第6章实例"可能涉及了复杂查询的实现,而"第8章实例"可能介绍了批处理操作或者异常处理的相关内容。这些实例将进一步巩固对JDBC和数据库编程的理解,...

    java实现的对数据库的操作

    在Java编程语言中,对数据库的操作是通过Java Database Connectivity (JDBC) API来实现的。JDBC提供了一组标准的接口和类,使得Java程序能够连接到各种类型的数据库,执行SQL语句,处理结果集,并进行事务管理。下面...

    Java高效实现批处理Excel数据导入数据库代码.docx

    ### Java高效实现批处理Excel数据导入数据库代码 #### 概述 本文档介绍了一种使用Java语言高效地将Excel文件中的数据批量导入到SQL Server数据库的方法。这种方法利用了`jxl`库读取Excel文件,并通过`...

    java与数据库的操作

    JDBC为开发者提供了一种统一的方法来处理SQL语句,实现对数据库的数据操作。 在Java中,使用JDBC进行数据库操作通常涉及以下步骤: 1. **加载驱动**:首先,我们需要加载对应数据库的JDBC驱动。这通常是通过`Class...

    Jdbc第五章数据库实例

    **JDBC第五章数据库实例详解** 在Java编程中,JDBC(Java Database Connectivity)是用于与各种数据库进行交互的一组接口和类。...掌握这些内容将为开发高效、稳定的Java数据库应用打下坚实基础。

    JDBC数据库操作值MySQL批处理操作

    本文将深入探讨JDBC在MySQL数据库中的应用,以及如何实现批处理操作。 首先,理解JDBC的基础知识至关重要。JDBC是Java平台的标准,由Sun Microsystems(现为Oracle公司)开发,使得Java应用程序能够与多种数据库...

    java连接数据库操作用到的jar包

    这个jar包是MySQL提供的,它实现了JDBC接口,使得Java能够理解和处理MySQL特有的SQL语法和数据库特性。 要开始使用,首先确保你的项目中包含了`mysql-connector-java.jar`。如果你是从Maven仓库引入,可以在pom.xml...

    Accp8.0\S2\使用Java实现数据库编程 第八章

    总的来说,"Accp8.0\S2\使用Java实现数据库编程 第八章"涵盖了Java数据库编程的关键概念和技术,对于想成为Java后端开发人员的学习者来说,是不可或缺的一部分。通过深入学习和实践,不仅可以掌握数据库操作,还能为...

    Oracle 批处理

    在Oracle中,批处理可以通过多种方式实现,例如使用SQL*Plus、PL/SQL块、Java stored procedures,或者是通过外部工具如Oracle Data Pump导出导入数据。这里特别提到了"xml w3c",这可能是指在批处理过程中涉及到XML...

    java 多线程操作数据库

    本文将基于一个具体的Java多线程操作数据库的应用程序,深入探讨其背后的原理、实现细节以及潜在的挑战。 #### 核心知识点: 1. **多线程基础**:多线程是Java编程中的一个重要概念,允许程序同时执行多个任务。在...

    java源代码 对数据库的操作

    在Java编程语言中,对数据库的操作是至关重要的一个部分,特别是在开发企业级应用程序时。Java提供了多种方式来与各种类型的数据库进行交互,如MySQL、Oracle、SQL Server等。本篇文章将详细探讨Java如何进行数据库...

    java数据库驱动包

    Java数据库驱动包是Java应用程序与各种数据库之间进行通信的关键组件。在Java中,JDBC(Java Database Connectivity)是一个标准API,允许程序员用Java语言来访问和处理存储在各种数据库中的数据。这个压缩包包含了...

    基于java的数据库基本操作源代码

    本资源"基于java的数据库基本操作源代码"提供了针对数据库表的增删改查(CRUD)功能,是初学者理解和实践Java数据库连接(JDBC)的理想教程。我们将深入探讨以下几个核心知识点: 1. **Java Database Connectivity ...

Global site tag (gtag.js) - Google Analytics