Java >> Tutoriel Java >  >> Java

Traitement par lots en Java

Qu'est-ce que le traitement par lots ?

Le traitement par lots en Java est utilisé pour exécuter un groupe de requêtes ou un lot, car l'exécution d'une seule requête encore et encore prend du temps et réduit les performances . Ainsi, en utilisant le traitement par lots, plusieurs requêtes peuvent être exécutées à la fois . Cela augmente les performances du programme.

Traitement par lots peut être fait en utilisant l'instruction et l'instruction préparée de Java car ces deux instructions fournissent des méthodes de traitement par lots pour traiter le lot.

Nous avons deux méthodes de traitement par lots :

  1. void addBatch(String query) :cette fonction ajoute une requête au lot.
  2. int[] executeBatch() :cette fonction exécute le batch.

Prenons un exemple pour voir comment le traitement par lots est effectué ?

Ici, nous prenons un exemple de table d'employés où nous allons insérer plusieurs valeurs de champ de plusieurs employés.

Étape 1 : Tout d'abord, vous devez créer une table de base de données dans le nom SQL "employé" et les champs suivants.


Étape 2 : Créez une classe nommée "BatchProcessing" en éclipse.

Étape 3 : suivez le code donné,

package logicProgramming;//your package name

import java.io.DataInputStream;//to read the input 
import java.sql.Connection;// to connect with database mysql
import java.sql.DriverManager;//to get the connection from specified url
import java.sql.PreparedStatement;//to execute query

public class BatchProcessing {
	public static void main(String[] args) {
		try {
			Class.forName("com.mysql.jdbc.Driver");
			//to load the class 
			Connection cn=(Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/Employee","root", "123");
			//establishing the connection with the specified schema in database (here,Employee is schema name root & 123 are user & password)
			PreparedStatement smt=cn.prepareStatement("insert into employee values(?,?,?,?)");
			//preparing parameterized query which will be executed later
			DataInputStream kb=new DataInputStream(System.in);
			String ans=null;

			//this loop will continue until the user say no to record insert 
			do { 
				System.out.println("Enter Employee Id :");
				smt.setString(1,kb.readLine());
				System.out.println("Enter Employee Name :");
				smt.setString(2,kb.readLine());
				System.out.println("Enter Employee position :");
				smt.setString(3,kb.readLine());
				System.out.println("Enter Employee Salary :");
				smt.setInt(4,Integer.parseInt(kb.readLine()));
				System.out.println("Do You Want to Add More Record..\n1.Yes\n2.No");
				ans=kb.readLine();
				smt.addBatch();// adding record one by one to batch }while(ans.equalsIgnoreCase("Yes")||ans.equalsIgnoreCase("1"));
				//asking user that he wants to add more record or not 
				int i[]= smt.executeBatch();
				//this will execute our batch
				if(i!=null)
				{
					System.out.println("Batches Of Record Inserted Successfully........");
				}
				else
				{
					System.out.println("Batches Of Record Failed To Insert........");
				}
			}
		}
		catch(Exception e)
		{
			//this will throw error any message
			System.out.println(e.getMessage());}
		}
	}
}

Étape 4 : Exécutez votre code et vous verrez comme ceci :




Balise Java