Insertar registros en lote usando JDBC

Se lleva a cabo usando las funciones a saber, los métodos addBatch() y executeBatch() . Eso nos permite tener una comprensión previa de los controladores JDBC. Entonces, para conectarse a su base de datos en Java, necesita un controlador JDBC. Cada base de datos (MySQL, Oracle, etc.) viene con su propio controlador JDBC, generalmente creado por el proveedor de la base de datos y que se encuentra en el sitio web de la base de datos. Teniendo en cuenta el ejemplo de la base de datos MySQL, deberá ir al sitio web de MySQL, descargar el archivo .jar del controlador JDBC de MySQL (también llamado Conector/J) y agregarlo a su proyecto.

Ahora analicemos los métodos con los que operan. Por lo tanto, los dos métodos anteriores, a saber, addBatch() y executeBatch() , son los siguientes:

Método 1: agregarBatch()

Este método agrega los valores de los parámetros al lote internamente. Ahora puede agregar otro conjunto de valores, para insertarlos en la instrucción SQL. Cada conjunto de parámetros se inserta en el SQL y se ejecuta por separado, una vez que el lote completo se envía a la base de datos.

Método 2: ejecutar Lote()

Se llama a este método, que ejecuta todas las actualizaciones por lotes. La instrucción SQL más los conjuntos de parámetros se envían a la base de datos de una sola vez. La array int[] devuelta por el método executeBatch() es una array de int que indica cuántos registros se vieron afectados por cada instrucción SQL ejecutada en el lote.

Sintaxis: Creación de la base de datos 

create table emp(eid varchar(200) unique,ename varchar(200)

Ejemplo:

Java

// Step 1: Importing DB(SQL) classes
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.Statement;
 
// Class
public class insertion {
 
    // Main driver method
    public static void main(String[] args) throws Exception
    {
 
        // Try block to check for exceptions
        try {
            // Step 2: Loading and registering drivers
 
            // Loading drivers using forName() method
            Class.forName("com.mysql.jdbc.Driver");
 
            // Registering driver using DriverManager
            Connection con = DriverManager.getConnection(
                "jdbc:mysql://localhost/test", "root", "");
 
            // Step 3: Create a statement
            Statement st = con.createStatement();
            String sql
                = "insert into emp (eid,ename) values (?, ?)";
 
            // Step 4: Execute the query
            PreparedStatement pstmt;
            pstmt = con.prepareStatement(sql);
            final int batchSize = 5000;
            int count = 0;
            for (int i = 4000; i <= 4500; i++) {
 
                pstmt.setString(1, "181FA0" + i);
                pstmt.setString(2, "181FA0" + i);
 
                pstmt.addBatch();
 
                count++;
 
                if (count % batchSize == 0) {
                    System.out.println("Commit the batch");
                    pstmt.executeBatch();
                }
                pstmt.executeBatch();
            }
        }
        catch (Exception e) {
            System.out.println("Error:" + e.getMessage());
        }
    }
}

Producción:

eid esmalte
181FA04001 181FA04001
181FA04002 181FA04002
. . . . . .
181FA04500 181FA04500

Publicación traducida automáticamente

Artículo escrito por nikhiltejatangella y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *