`
starbhhc
  • 浏览: 654384 次
  • 性别: Icon_minigender_2
  • 来自: 深圳
社区版块
存档分类
最新评论

addBatch()和executeBatch()实现数据的批处理插入

阅读更多
import java.io.FileReader;   
import java.io.BufferedReader;   
import java.io.FileNotFoundException;   
import java.io.IOException;   
import java.sql.Connection;   
import java.sql.DriverManager;   
import java.sql.SQLException;   
import java.sql.Statement;   
  
import javax.naming.InitialContext;   
import javax.naming.NamingException;   
import javax.sql.DataSource;   
  
public class InertDB_batch {   
  
    /**  
     * @param args  
     */  
    public static void main(String[] args) {   
        // TODO Auto-generated method stub   
        System.out.println("***************");   
        String buf = null;   
        BufferedReader in = null;   
        Statement stmt =null;   
        Connection con =null;   
        try{   
                Class.forName("com.mysql.jdbc.Driver");   
                con = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb?characterEncoding=gb2312", "root", "root");   
                stmt = con.createStatement();   
        }catch(Exception e){   
            e.printStackTrace();   
        }   
        try {   
            in = new BufferedReader(new FileReader("insert.sql"));   
            buf = in.readLine();   
            System.out.println(buf);   
        } catch (FileNotFoundException e) {   
            new Exception("insert.sql File not exists!");   
        } catch (IOException e) {   
            e.printStackTrace();   
        }   
           
        while (buf != null) {   
            System.out.println(buf);   
            try {   
                  
                //将给定的 SQL 命令添加到此 Statement 对象的当前命令列表中   
                stmt.addBatch(buf);    
                buf = in.readLine();   
  
            } catch (Exception e) {   
                // TODO Auto-generated catch block   
                e.printStackTrace();   
            }   
        }   
        try{   
            int []line = stmt.executeBatch();    
                    for(int i=0;i<line.length;i++){   
           System.out.println("i = "+i);   
        }   
                //System.out.println(line);   
        }catch(Exception ex){   
            ex.printStackTrace();   
        }   
  
        System.out.println("***************");   
        System.out.println("完了!!");   
    }   
  
}   
  
分享到:
评论

相关推荐

    【IT十八掌徐培成】Java基础第23天-03.ppst-addBatch-executeBatch.zip

    总结来说,Java的`addBatch`和`executeBatch`方法是JDBC中提高数据库操作性能的重要工具,它们允许我们在一次提交中执行多条SQL语句,适用于需要进行大量数据操作的场景。在实际开发中,合理运用批量处理可以显著...

    【IT十八掌徐培成】Java基础第23天-03.ppst-addBatch-executeBatch - 副本.zip

    批量处理主要涉及两个关键方法:`addBatch()`和`executeBatch()`,它们都是`java.sql.Statement`接口的成员。在Java程序中,我们通常使用`PreparedStatement`对象来执行预编译的SQL语句,因为它们提供更好的安全性,...

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

    Statement对象支持两种执行模式:同步(默认)和异步(通过addBatch和executeBatch方法实现批处理)。 4. PreparedStatement:是Statement的子类,预编译SQL语句,提供更好的性能和安全性。它允许在SQL语句中使用...

    java批量插入Oracle数据方法

    在IT领域,特别是...通过合理设计代码结构,利用`PreparedStatement`的批处理功能,可以显著提升数据插入的速度和系统的整体性能。在实践中,还需注意细节如事务管理和异常处理,以确保数据完整性和系统的健壮性。

    批处理导入SQL文件

    批处理是通过设置Statement对象的`addBatch()`方法和`executeBatch()`方法来实现的。下面是一个简单的示例: ```java Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/testdb", ...

    批处理对数据库的应用

    - 例如,在Java中可以使用JDBC的`addBatch()`方法来添加一系列的SQL语句到一个批处理中,然后使用`executeBatch()`方法一次性执行所有添加到批处理中的语句。 3. **操作系统级批处理**: - 在操作系统级别,可以...

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

    - 通过循环遍历读取的Excel数据,填充`PreparedStatement`参数并执行批处理插入操作。 5. **示例代码分析** - 主函数`main()`启动程序,记录并输出整个过程的执行时间。 - `testRun()`函数负责读取指定目录下的...

    关于hibernate的批处理

    10. **JDBC批处理API**: Hibernate底层使用JDBC的批处理API(Statement.addBatch()和Statement.executeBatch()),用户也可以直接使用JDBC批处理,绕过Hibernate的部分逻辑,获取更高的性能。 11. **性能优化注意...

    jdbc-批量插入数据

    批量处理主要通过`addBatch()`方法添加SQL语句到批处理队列,然后通过`executeBatch()`方法一次性执行所有已添加的SQL。 以下是一个简单的批量插入示例: ```java Connection conn = DriverManager.getConnection...

    JDBC批处理数据

    使用`addBatch()`和`executeBatch()`进行批处理 ```java Connection connection = new getConnection(); Statement statement = connection.createStatement(); for (String query : queries) { statement....

    使用JDBC的批处理功能

    在JDBC中,批处理主要通过Statement或PreparedStatement对象的addBatch()方法来实现,然后通过executeBatch()方法执行整个批处理队列。 二、批处理的优势 1. 性能提升:批处理减少了网络传输的次数,因为多个SQL...

    Mybatis与JDBC批量插入MySQL数据库性能测试

    在批量插入场景下,JDBC提供了Statement对象的addBatch()和executeBatch()方法,可以将多条插入语句一次性提交,减少与数据库的交互次数,从而提高效率。 Mybatis是一个轻量级的持久层框架,它简化了JDBC的复杂性,...

    JAVA多线程实现数据库之间的数据互导、连接池、及多表插入数据库功能

    - **批处理**:使用PreparedStatement的addBatch()和executeBatch()方法,可以一次性提交多条SQL语句,减少与数据库的交互次数,提高效率。 - **事务管理**:在多表操作中,确保原子性、一致性、隔离性和持久性...

    Java使用JDBC向MySQL数据库批次插入10W条数据(测试效率)

    综上所述,Java使用JDBC进行批量插入数据是通过PreparedStatement的批处理功能实现的,通过设置手动提交和优化连接字符串,以及合理控制批量处理的大小和选择合适的数据库配置,可以有效地提高插入10万条或更多数据...

    利用poi获取excel数据批量插入大量数据到mysql

    接下来,我们需要创建一个Java类来实现数据的读取和插入。首先,使用POI读取Excel文件中的数据。以下是一个基本示例: ```java import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel....

    JDBC进行批处理共4页.pdf.zip

    1. **批处理API**: JDBC提供了Statement接口的`addBatch()`方法用于添加待执行的SQL语句到批处理队列,`executeBatch()`方法用于执行整个批处理队列。PreparedStatement接口同样支持批处理,提供了一样的方法。 2. ...

    sql2000+java 批处理,测试demo

    Java中的批处理功能主要通过java.sql.Statement或java.sql.PreparedStatement对象的addBatch()和executeBatch()方法实现。这些方法允许程序员将多个SQL命令添加到一个批次中,然后一次性执行,从而减少了网络往返...

    jdbc 批处理.rar

    此外,避免在批处理中间插入其他非批处理操作,这会破坏批处理的连续性。 7. **PreparedStatement的优势**:相较于`Statement`,`PreparedStatement`更安全且性能更好,因为它能预编译SQL语句,减少解析和编译的...

    JDBC批量插入 更新 删除等操作

    批量更新的原理与批量插入类似,都是通过`PreparedStatement`的`addBatch()`方法将多个更新操作加入到一个批处理队列中,然后调用`executeBatch()`方法执行这些更新操作。这种方式可以显著减少网络往返次数,提高...

Global site tag (gtag.js) - Google Analytics